{"version":3,"sources":["_00_events.js","_00_util.js","_0_data-binder.js","_0_queryParam.js","_1_cart-items.js","_1_filter.js","_1_responsive-sidebar.js","_1_tree.js","_2_list-tile-toggle.js"],"names":["EventBus","description","eventTarget","document","appendChild","createComment","type","listener","addEventListener","once","removeEventListener","detail","dispatchEvent","CustomEvent","ui_events","Util","hasClass","el","className","classList","contains","getAttribute","match","RegExp","addClass","split","add","setAttribute","length","slice","join","removeClass","remove","reg","replace","toggleClass","bool","setAttributes","attrs","key","getChildrenByClassName","children","childrenByClass","i","push","getParentsByClassName","Element","prototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","s","ownerDocument","querySelectorAll","item","parents","parentNode","is","elem","selector","nodeType","qa","returnArr","eachLoop","arr","callback","method","Array","call","setHeight","start","to","element","duration","cb","timeFunction","change","currentTime","animateHeight","timestamp","progress","val","parseInt","Math","style","height","window","requestAnimationFrame","scrollTo","final","scrollEl","scrollTop","documentElement","scrollY","animateScroll","easeInOutQuad","moveFocus","getElementsByTagName","focus","activeElement","getIndexInArray","array","indexOf","cssSupports","property","value","CSS","supports","jsProperty","g","toUpperCase","body","extend","extended","deep","arguments","Object","toString","merge","obj","prop","hasOwnProperty","osHasReducedMotion","matchMedia","matchMediaObj","closest","parentElement","event","params","bubbles","cancelable","undefined","evt","createEvent","initCustomEvent","Event","t","b","c","d","easeInQuart","easeOutQuart","easeInOutQuart","easeOutElastic","p","a","abs","PI","asin","pow","sin","focusTab","getElementsByClassName","shouldInit","outlineStyle","eventDetected","detectClick","resetFocusStyle","detectTab","keyCode","setProperty","initFocusTabs","resetFocusTabsStyle","DataBinder","boundEls","modeledEls","inputType","state","create_state","render","forEach","innerHTML","add_listeners","binder","Proxy","set","target","dataSource","eventType","e","bindingKeys","from","map","dataset","binding","uniqueKeys","filter","x","mergeQueryStringParameters","uri","re","hash","separator","getQueryStringParameters","urlParams","query","location","search","substring","url","href","additional","decode","decodeURIComponent","exec","uppdateURL","updated","history","pushState","setFilter","filterString","filterGallery","elementId","controller","filterButtons","selected","querySelector","name","checked","emit","node","setFilterFromUrlQuery","setTimeout","on","CartItem","hasCheckboxes","getOptionBool","checkboxListeners","attrName","option","checks","check","action","cartList","Cart","cartEl","counterEl","cartButton","cartItemsEl","clearButton","downloadButton","updateOnItemAdded","openCartClickEvent","clearAllListener","downloadButtonListener","cart","btn","clearCart","emitDownload","getCartItems","openCart","cls","isOpen","localCart","items","updateCartItemsHtml","itemsHtml","ul","total","counter","carts","clear","localStorage","removeItem","index","splice","has","setItem","JSON","stringify","parse","getItem","productUuid","Filter","opts","options","defaults","controllers","fallbackMessage","sortingString","filterList","sortingList","itemsGrid","itemsInitPosition","itemsIterPosition","itemsFinalPosition","animateOff","resizingId","accelerateStyle","animating","reanimate","initFilter","resetFilterSortArray","createGridInfo","initItemsOrder","tagName","toLowerCase","setSortingString","selectedIndex","setFilterString","updateFilterArray","filterEl","sortEl","preventDefault","resetControllersList","clearTimeout","checkInitialFiltering","selectedButton","sort","selectedInput","radioInput","checkboxInput","order","checkedInputs","multiple","getMultipleSelectValues","selectedButtons","target1","target2","multi","customClass","selectedOption","sortingGallery","filteringGallery","resetFallbackMessage","reducedMotion","resetItems","updateItemsAttributes","sortOptions","restoreSortOrder","left","right","leftVal","rightVal","parseFloat","singleFilterGallery","subfilter","customFilterArray","j","filterValues","present","storeOffset","offsetHeight","offsetWidth","animateItems","transitionValue","removeAttribute","filtering","sorting","containerWidth","getComputedStyle","getPropertyValue","itemStyle","itemWidth","itemHeight","marginX","marginY","colNumber","offsetLeft","offsetTop","y","floor","show","multipleSelect","Sidebar","triggers","firstFocusable","lastFocusable","selectedTrigger","showClass","staticClass","customStaticClass","readyClass","layout","getCustomStaticClass","initSidebar","closeSidebar","customClasses","sidebar","initSidebarResize","showSidebar","initSidebarEvents","getFocusableElements","cancelSidebarEvents","handleEvent","bind","initClick","initKeyDown","trapFocus","shiftKey","beforeContent","checkSidebarLayout","allFocusable","getFirstVisible","getLastVisible","elements","getClientRects","resetLayout","customEvent","Tree","contentEditable","autoCloseSiblings","usesRadioButtons","keepSelectedOpen","selectedOnLoadAttr","openOnLoadAttr","initTree","control","isExpanded","level","siblings","editItem","radios","hasQueryInURL","selectOnLoad","openOnLoad","initRadioButtons","initContentEditable","initKeyboardNav","radio","selectedItem","label","resetEditing","editingLabel","focusedNode","isGroupNode","nodeIsEditing","nextNode","getNextNode","moveTreeFocused","prevNode","getPrevNode","labelToEdit","prevSibling","previousElementSibling","parent","getLastChild","lastChild","console","log","nextSibling","nextElementSibling","getNotFalseNextElement","parentItem","focusEl","selectText","createTextRange","range","moveToElementText","select","getSelection","selection","createRange","selectNodeContents","removeAllRanges","addRange","trees","ClassToggler","target_class","target_els","state_1_class","state_2_class","initClassToggler","setTargetClasses","classToggler"],"mappings":"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","file":"ui_2021.js","sourcesContent":["\n// EVENT BUS USAGE:\n\n// ** Register event listener **\n// ui_events.on('event-name', (e) => {\n// myFunc(e.detail)\n// });\n\n// ** Register single use listener **\n// ui_events.once('event-name', (e) => {\n// myFunc(e.detail)\n// });\n\n// ** Deregister event listener **\n// ui_events.off('event-name');\n\n\n// ** Emit event (eventName, data) **\n// ui_events.emit('event-name', 'foo');\n\n\nclass EventBus {\n constructor(description = '') {\n this.eventTarget = document.appendChild(document.createComment(description));\n }\n on(type, listener) {\n this.eventTarget.addEventListener(type, listener);\n }\n once(type, listener) {\n this.eventTarget.addEventListener(type, listener, {\n once: true\n });\n }\n off(type, listener) {\n this.eventTarget.removeEventListener(type, listener);\n }\n emit(type, detail) {\n return this.eventTarget.dispatchEvent(new CustomEvent(type, {\n detail\n }));\n }\n}\nconst ui_events = new EventBus('ui_events');\n","// Utility function\nfunction Util () {};\n\n/*\n\tclass manipulation functions\n*/\nUtil.hasClass = function(el, className) {\n\tif (el.classList) return el.classList.contains(className);\n\telse return !!el.getAttribute('class').match(new RegExp('(\\\\s|^)' + className + '(\\\\s|$)'));\n};\n\nUtil.addClass = function(el, className) {\n\tvar classList = className.split(' ');\n \tif (el.classList) el.classList.add(classList[0]);\n else if (!Util.hasClass(el, classList[0])) el.setAttribute('class', el.getAttribute('class') + \" \" + classList[0]);\n \tif (classList.length > 1) Util.addClass(el, classList.slice(1).join(' '));\n};\n\nUtil.removeClass = function(el, className) {\n\tvar classList = className.split(' ');\n\tif (el.classList) el.classList.remove(classList[0]);\n\telse if(Util.hasClass(el, classList[0])) {\n\t\tvar reg = new RegExp('(\\\\s|^)' + classList[0] + '(\\\\s|$)');\n el.setAttribute('class', el.getAttribute('class').replace(reg, ' '));\n\t}\n\tif (classList.length > 1) Util.removeClass(el, classList.slice(1).join(' '));\n};\n\nUtil.toggleClass = function(el, className, bool) {\n\tif(bool) Util.addClass(el, className);\n\telse Util.removeClass(el, className);\n};\n\nUtil.setAttributes = function(el, attrs) {\n for(var key in attrs) {\n el.setAttribute(key, attrs[key]);\n }\n};\n\n/*\n DOM manipulation\n*/\nUtil.getChildrenByClassName = function(el, className) {\n var children = el.children,\n childrenByClass = [];\n for (var i = 0; i < el.children.length; i++) {\n if (Util.hasClass(el.children[i], className)) childrenByClass.push(el.children[i]);\n }\n return childrenByClass;\n};\n\nUtil.getParentsByClassName = function(el, className) {\n\t// Element.matches() polyfill\n\tif (!Element.prototype.matches) {\n\t\tElement.prototype.matches =\n\t\t\tElement.prototype.matchesSelector ||\n\t\t\tElement.prototype.mozMatchesSelector ||\n\t\t\tElement.prototype.msMatchesSelector ||\n\t\t\tElement.prototype.oMatchesSelector ||\n\t\t\tElement.prototype.webkitMatchesSelector ||\n\t\t\tfunction(s) {\n\t\t\t\tvar matches = (this.document || this.ownerDocument).querySelectorAll(s),\n\t\t\t\t\ti = matches.length;\n\t\t\t\twhile (--i >= 0 && matches.item(i) !== this) {}\n\t\t\t\treturn i > -1;\n\t\t\t};\n\t}\n\t// Set up a parent array\n\tvar parents = [];\n\t// Push each parent element to the array\n\tfor ( ; el && el !== document; el = el.parentNode ) {\n\t\tif (className) {\n\t\t\tif (el.matches(className)) {\n\t\t\t\tparents.push(el);\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tparents.push(el);\n\t}\n\t// Return our parent array\n\treturn parents;\n};\n\n\n\nUtil.is = function(elem, selector) {\n if(selector.nodeType){\n return elem === selector;\n }\n\n var qa = (typeof(selector) === 'string' ? document.querySelectorAll(selector) : selector),\n length = qa.length,\n returnArr = [];\n\n while(length--){\n if(qa[length] === elem){\n return true;\n }\n }\n\n return false;\n};\n\n/*\n\tFunction eachLoop(arr, callback, method) usage:\n\n\tUtil.eachLoop(jobs, function (job) {\n\t\tconsole.log(job.textContent + ' is a great job!');\n\t});\n\n\tCreates a new array with the content of each item\n\tUtil.eachLoop(jobs, function (job) {\n\t\treturn job.textContent;\n\t}, 'map');\n\n\tFilters out items that don't have the `.awesome` class on them\n\tUtil.eachLoop(jobs, function (job) {\n\t\treturn job.classList.contains('awesome');\n\t}, 'filter');\n*/\n\nUtil.eachLoop = function(arr, callback, method) {\n\tmethod = method || 'forEach';\n\treturn Array.prototype[method].call(arr, callback);\n};\n\n\n\n/*\n\tAnimate height of an element\n*/\nUtil.setHeight = function(start, to, element, duration, cb, timeFunction) {\n\tvar change = to - start,\n\t currentTime = null;\n\n var animateHeight = function(timestamp){\n if (!currentTime) currentTime = timestamp;\n var progress = timestamp - currentTime;\n if(progress > duration) progress = duration;\n var val = parseInt((progress/duration)*change + start);\n if(timeFunction) {\n val = Math[timeFunction](progress, start, to - start, duration);\n }\n element.style.height = val+\"px\";\n if(progress < duration) {\n window.requestAnimationFrame(animateHeight);\n } else {\n \tif(cb) cb();\n }\n };\n\n //set the height of the element before starting animation -> fix bug on Safari\n element.style.height = start+\"px\";\n window.requestAnimationFrame(animateHeight);\n};\n\n/*\n\tSmooth Scroll\n*/\n\nUtil.scrollTo = function(final, duration, cb, scrollEl) {\n var element = scrollEl || window;\n var start = element.scrollTop || document.documentElement.scrollTop,\n currentTime = null;\n\n if(!scrollEl) start = window.scrollY || document.documentElement.scrollTop;\n\n var animateScroll = function(timestamp){\n \tif (!currentTime) currentTime = timestamp;\n var progress = timestamp - currentTime;\n if(progress > duration) progress = duration;\n var val = Math.easeInOutQuad(progress, start, final-start, duration);\n element.scrollTo(0, val);\n if(progress < duration) {\n window.requestAnimationFrame(animateScroll);\n } else {\n cb && cb();\n }\n };\n\n window.requestAnimationFrame(animateScroll);\n};\n\n/*\n Focus utility classes\n*/\n\n//Move focus to an element\nUtil.moveFocus = function (element) {\n if( !element ) element = document.getElementsByTagName(\"body\")[0];\n element.focus();\n if (document.activeElement !== element) {\n element.setAttribute('tabindex','-1');\n element.focus();\n }\n};\n\n/*\n Misc\n*/\n\nUtil.getIndexInArray = function(array, el) {\n return Array.prototype.indexOf.call(array, el);\n};\n\nUtil.cssSupports = function(property, value) {\n if('CSS' in window) {\n return CSS.supports(property, value);\n } else {\n var jsProperty = property.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase();});\n return jsProperty in document.body.style;\n }\n};\n\n// merge a set of user options into plugin defaults\n// https://gomakethings.com/vanilla-javascript-version-of-jquery-extend/\nUtil.extend = function() {\n // Variables\n var extended = {};\n var deep = false;\n var i = 0;\n var length = arguments.length;\n\n // Check if a deep merge\n if ( Object.prototype.toString.call( arguments[0] ) === '[object Boolean]' ) {\n deep = arguments[0];\n i++;\n }\n\n // Merge the object into the extended object\n var merge = function (obj) {\n for ( var prop in obj ) {\n if ( Object.prototype.hasOwnProperty.call( obj, prop ) ) {\n // If deep merge and property is an object, merge properties\n if ( deep && Object.prototype.toString.call(obj[prop]) === '[object Object]' ) {\n extended[prop] = extend( true, extended[prop], obj[prop] );\n } else {\n extended[prop] = obj[prop];\n }\n }\n }\n };\n\n // Loop through each object and conduct a merge\n for ( ; i < length; i++ ) {\n var obj = arguments[i];\n merge(obj);\n }\n\n return extended;\n};\n\n// Check if Reduced Motion is enabled\nUtil.osHasReducedMotion = function() {\n if(!window.matchMedia) return false;\n var matchMediaObj = window.matchMedia('(prefers-reduced-motion: reduce)');\n if(matchMediaObj) return matchMediaObj.matches;\n return false; // return false if not supported\n};\n\n/*\n\tPolyfills\n*/\n//Closest() method\nif (!Element.prototype.matches) {\n\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n}\n\nif (!Element.prototype.closest) {\n\tElement.prototype.closest = function(s) {\n\t\tvar el = this;\n\t\tif (!document.documentElement.contains(el)) return null;\n\t\tdo {\n\t\t\tif (el.matches(s)) return el;\n\t\t\tel = el.parentElement || el.parentNode;\n\t\t} while (el !== null && el.nodeType === 1);\n\t\treturn null;\n\t};\n}\n\n//Custom Event() constructor\nif ( typeof window.CustomEvent !== \"function\" ) {\n\n function CustomEvent ( event, params ) {\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n var evt = document.createEvent( 'CustomEvent' );\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );\n return evt;\n }\n\n CustomEvent.prototype = window.Event.prototype;\n\n window.CustomEvent = CustomEvent;\n}\n\n/*\n\tAnimation curves\n*/\nMath.easeInOutQuad = function (t, b, c, d) {\n\tt /= d/2;\n\tif (t < 1) return c/2*t*t + b;\n\tt--;\n\treturn -c/2 * (t*(t-2) - 1) + b;\n};\n\nMath.easeInQuart = function (t, b, c, d) {\n\tt /= d;\n\treturn c*t*t*t*t + b;\n};\n\nMath.easeOutQuart = function (t, b, c, d) {\n t /= d;\n\tt--;\n\treturn -c * (t*t*t*t - 1) + b;\n};\n\nMath.easeInOutQuart = function (t, b, c, d) {\n\tt /= d/2;\n\tif (t < 1) return c/2*t*t*t*t + b;\n\tt -= 2;\n\treturn -c/2 * (t*t*t*t - 2) + b;\n};\n\nMath.easeOutElastic = function (t, b, c, d) {\n var s=1.70158;var p=d*0.7;var a=c;\n if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;\n if (a < Math.abs(c)) { a=c; var s=p/4; }\n else var s = p/(2*Math.PI) * Math.asin (c/a);\n return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;\n};\n\n\n/* JS Utility Classes */\n\n// make focus ring visible only for keyboard navigation (i.e., tab key)\n(function() {\n var focusTab = document.getElementsByClassName('js-tab-focus'),\n shouldInit = false,\n outlineStyle = false,\n eventDetected = false;\n\n function detectClick() {\n if(focusTab.length > 0) {\n resetFocusStyle(false);\n window.addEventListener('keydown', detectTab);\n }\n window.removeEventListener('mousedown', detectClick);\n outlineStyle = false;\n eventDetected = true;\n };\n\n function detectTab(event) {\n if(event.keyCode !== 9) return;\n resetFocusStyle(true);\n window.removeEventListener('keydown', detectTab);\n window.addEventListener('mousedown', detectClick);\n outlineStyle = true;\n };\n\n function resetFocusStyle(bool) {\n var outlineStyle = bool ? '' : 'none';\n for(var i = 0; i < focusTab.length; i++) {\n focusTab[i].style.setProperty('outline', outlineStyle);\n }\n };\n\n function initFocusTabs() {\n if(shouldInit) {\n if(eventDetected) resetFocusStyle(outlineStyle);\n return;\n }\n shouldInit = focusTab.length > 0;\n window.addEventListener('mousedown', detectClick);\n };\n\n initFocusTabs();\n window.addEventListener('initFocusTabs', initFocusTabs);\n}());\n\nfunction resetFocusTabsStyle() {\n window.dispatchEvent(new CustomEvent('initFocusTabs'));\n};\n","\n// for source input add attr data-model=\"someName\"\n// for bound target add attr data-binding=\"someName\"\n\n(function() {\n\n var DataBinder = function(key) {\n this.key = key\n this.boundEls = document.querySelectorAll(`[data-binding='${key}']`)\n this.modeledEls = document.querySelectorAll(`[data-model='${key}']`)\n this.inputType = this.modeledEls[0].type\n this.value = this.modeledEls[0].value\n this.state = create_state(this)\n this.render = function() {\n this.boundEls.forEach((el) => el.innerHTML = this.state[key])\n this.modeledEls.forEach((el) => el.value = this.state[key])\n }\n this.render(this)\n add_listeners(this)\n }\n\n const create_state = (binder) => {\n const state = {\n [binder.key]: binder.value\n }\n return new Proxy(state, {\n set(target, property, value) {\n target[property] = value // default set behaviour\n binder.render() // updates the view every time the state changes\n return true;\n }\n })\n }\n\n function add_listeners(binder) {\n const dataSource = binder.modeledEls\n const eventType = 'keyup'\n dataSource.forEach(el => {\n el.addEventListener(eventType, e => {\n binder.state[binder.key] = el.value\n })\n })\n }\n\n const bindingKeys = Array\n .from(document.querySelectorAll('[data-binding]'))\n .map(e => e.dataset.binding)\n\n const uniqueKeys = bindingKeys\n .filter((x, i, a) => a.indexOf(x) == i);\n\n uniqueKeys.forEach((key) => new DataBinder(key))\n\n}())\n","\n(function() {\n\n function mergeQueryStringParameters(uri, key, value) {\n var re = new RegExp(\"([?&])\" + key + \"=.*?(&|#|$)\", \"i\");\n if( value === undefined ) {\n \tif (uri.match(re)) {\n \t\treturn uri.replace(re, '$1$2');\n \t} else {\n \t\treturn uri;\n \t}\n } else {\n \tif (uri.match(re)) {\n \t\treturn uri.replace(re, '$1' + key + \"=\" + value + '$2');\n \t} else {\n var hash = '';\n if( uri.indexOf('#') !== -1 ){\n hash = uri.replace(/.*#/, '#');\n uri = uri.replace(/#.*/, '');\n }\n var separator = uri.indexOf('?') !== -1 ? \"&\" : \"?\";\n return uri + separator + key + \"=\" + value + hash;\n }\n }\n }\n\n function getQueryStringParameters(){\n let urlParams = {}\n let match = undefined\n const query = window.location.search.substring(1)\n const url = window.location.href\n const additional = /\\+/g\n const search = /([^&=]+)=?([^&]*)/g\n function decode(s) {\n return decodeURIComponent(s.replace(additional, \" \"))\n }\n while (match = search.exec(query)){\n urlParams[decode(match[1])] = decode(match[2])\n }\n return urlParams\n }\n\n function uppdateURL( updated ) {\n\n if (window.location.href === updated) {\n return\n } else if ('pushState' in window.history) {\n history.pushState( null, '', updated );\n } else {\n window.location.replace( updated )\n }\n }\n\n\n function setFilter(filterString) {\n const filterGallery = document.getElementsByClassName('js-filter')[0];\n const elementId = filterGallery.getAttribute('id');\n const controller = document.querySelectorAll('[aria-controls=\"'+elementId+'\"]')[0];\n const filterButtons = controller.children\n const target = controller.querySelectorAll('[data-filter=\"'+filterString+'\"]')[0];\n const selected = controller.querySelector('.js-filter-selected');\n if (!target) return\n if (selected) Util.removeClass(selected, 'js-filter-selected');\n if (target.type === \"radio\" && target.name === \"tree-radio-buttons\") {\n target.checked = true\n ui_events.emit('update-category-header', target.value)\n var parents = Util.getParentsByClassName(target, '.tree__node')\n parents.forEach(function (node) {\n Util.toggleClass(node, 'tree__node--expanded', !Util.hasClass(node, 'tree__node--expanded'));\n })\n }\n Util.addClass(target, 'js-filter-selected')\n ui_events.emit('update-filter-results')\n }\n\n function setFilterFromUrlQuery() {\n setTimeout(function() {\n let value = getQueryStringParameters().filter || false\n if (!value) return\n if (value === 'all') value = '*'\n // console.log('value', value)\n setFilter(value) }, 1)\n }\n setFilterFromUrlQuery()\n\n\n ui_events.on('filter-selection-clicked', function(e) {\n\n let filter = e.detail.filterString\n\n for (var i = 0; i < filter.length; i++) {\n filter[i] = filter[i].replace(':', '')\n }\n var uri = window.location.href\n let key = 'filter'\n let value = filter[0]\n\n if (value === '*') { value = 'all' }\n let updated = mergeQueryStringParameters( uri, key, value )\n\n uppdateURL(updated.split('#')[0])\n });\n\nwindow.addEventListener('popstate', function(e) {\n setFilterFromUrlQuery()\n});\n\n\n\n}());\n","(function() {\n var CartItem = function(element) {\n this.element = element;\n this.hasCheckboxes = getOptionBool(this, 'data-has-cart-item-checkbox');\n checkboxListeners(this);\n };\n\n function getOptionBool(el, attrName) {\n var option = el.element.getAttribute(attrName);\n return option && option == 'true';\n };\n\n function checkboxListeners(element) {\n var checks = element.element.querySelectorAll('input[type=checkbox][name=\"cart-item-checkboxes\"]');\n checks.forEach(function (check) {\n return check.addEventListener(\"change\", function (e) {\n let checked = element.element.querySelectorAll('input[type=checkbox][name=\"cart-item-checkboxes\"]:checked');\n var action = e.target.checked ? 'cart-item-added' : 'cart-item-removed'\n ui_events.emit(action, e.target);\n ui_events.emit('cart-updated', checked);\n });\n });\n }\n\n var cartList = document.getElementsByClassName('js-cart-item-list');\n if( cartList.length > 0) {\n for( var i = 0; i < cartList.length; i++) {\n new CartItem(cartList[i]);\n }\n }\n}());\n\n\n(function() {\n var Cart = function(cartEl) {\n this.el = cartEl;\n this.counterEl = cartEl.getElementsByClassName('js-cart-count');\n this.cartButton = cartEl.getElementsByClassName('js-cart-toggle');\n this.cartItemsEl = cartEl.getElementsByClassName('js-cart-items-added');\n this.cartButton = cartEl.getElementsByClassName('js-cart-toggle');\n this.clearButton = cartEl.getElementsByClassName('js-cart-clear-all');\n this.downloadButton = cartEl.getElementsByClassName('js-cart-download');\n updateOnItemAdded(this)\n openCartClickEvent(this)\n // updateCartItemsHtml(this)\n clearAllListener(this)\n downloadButtonListener(this)\n };\n\n function clearAllListener(cart) {\n ui_events.emit('cart-clear')\n Util.eachLoop(cart.clearButton, btn => btn.addEventListener( \"click\", e => clearCart(cart) ))\n }\n\n function downloadButtonListener(cart) {\n Util.eachLoop(cart.downloadButton, btn => btn.addEventListener( \"click\", e => emitDownload(cart) ))\n }\n\n function emitDownload(cart) {\n ui_events.emit('cart-download', getCartItems())\n }\n\n function clearCart(cart) {\n var cartList = document.getElementsByClassName('js-cart-item-list')[0];\n var checked = cartList.querySelectorAll('input[type=checkbox][name=\"cart-item-checkboxes\"]:checked');\n Util.eachLoop(checked, item => item.checked = false)\n ui_events.emit('cart-clear');\n ui_events.emit('cart-updated', []);\n }\n\n function getOptionBool(el, attrName) {\n var option = el.element.getAttribute(attrName);\n return option && option == 'true';\n };\n\n function openCart(cart, e) {\n const cls = 'cart--is-open'\n const isOpen = Util.hasClass(cart.el, cls)\n Util.toggleClass(cart.el, cls, !isOpen)\n }\n\n function getCartItems() {\n if (typeof localCart === 'undefined') return\n if (localCart && localCart.items) {\n return localCart.items\n } else {\n return []\n }\n }\n\n function updateCartItemsHtml(cart) {\n var itemsHtml = ''\n var items = getCartItems()\n\n Util.eachLoop(items, item => {\n itemsHtml += '