{"version":3,"sources":["../../node_modules/blingblingjs/src/index.js","scoreboard.js"],"names":["sugar","on","names","fn","split","forEach","name","addEventListener","off","removeEventListener","attr","val","undefined","getAttribute","removeAttribute","setAttribute","$","query","$context","document","$nodes","NodeList","Array","isArray","HTMLElement","SVGElement","querySelectorAll","Object","length","assign","from","map","$el","attrs","entries","key","controlPrev","controlNext","slider","position","moveDistance","move","distance","scrollLeft","handleClickOnBtn","e","value","preventDefault","handleScroll","disabled","clientWidth","scrollWidth"],"mappings":"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","file":"scoreboard.js","sourceRoot":"../../src/js","sourcesContent":["const sugar = {\n on: function(names, fn) {\n names\n .split(' ')\n .forEach(name =>\n this.addEventListener(name, fn))\n return this\n },\n off: function(names, fn) {\n names\n .split(' ')\n .forEach(name =>\n this.removeEventListener(name, fn))\n return this\n },\n attr: function(attr, val) {\n if (val === undefined) return this.getAttribute(attr)\n\n val == null\n ? this.removeAttribute(attr)\n : this.setAttribute(attr, val || '')\n \n return this\n }\n}\n\nexport default function $(query, $context = document) {\n let $nodes = query instanceof NodeList || Array.isArray(query)\n ? query\n : query instanceof HTMLElement || query instanceof SVGElement\n ? [query]\n : $context.querySelectorAll(query)\n\n if (!$nodes.length) $nodes = []\n\n return Object.assign(\n Array.from($nodes).map($el => Object.assign($el, sugar)), \n {\n on: function(names, fn) {\n this.forEach($el => $el.on(names, fn))\n return this\n },\n off: function(names, fn) {\n this.forEach($el => $el.off(names, fn))\n return this\n },\n attr: function(attrs, val) {\n if (typeof attrs === 'string' && val === undefined)\n return this[0].attr(attrs)\n\n else if (typeof attrs === 'object') \n this.forEach($el =>\n Object.entries(attrs)\n .forEach(([key, val]) =>\n $el.attr(key, val)))\n\n else if (typeof attrs == 'string' && (val || val == null || val == ''))\n this.forEach($el => $el.attr(attrs, val))\n\n return this\n }\n }\n )\n}\n","import $ from 'blingblingjs';\n\nconst [controlPrev] = $('.js-scoreboard-prev');\nconst [controlNext] = $('.js-scoreboard-next');\nconst [slider] = $('.js-scoreboard-slider');\nlet position = 0;\nconst moveDistance = 300;\n\nconst move = (distance) => {\n slider.scrollLeft = moveDistance * distance;\n};\n\nconst handleClickOnBtn = (e, value) => {\n // stop default action\n e.preventDefault();\n // set new position\n position += value;\n // move slider\n move(position);\n};\n\nconst handleScroll = () => {\n // beginning?\n if (slider.scrollLeft > 0) {\n controlPrev.disabled = false;\n } else {\n controlPrev.disabled = true;\n }\n\n // end ?\n if (slider.scrollLeft + slider.clientWidth >= slider.scrollWidth) {\n controlNext.disabled = true;\n } else {\n controlNext.disabled = false;\n }\n};\n\nif (controlPrev) controlPrev.on('click', (e) => handleClickOnBtn(e, -1));\nif (controlNext) controlNext.on('click', (e) => handleClickOnBtn(e, 1));\nif (slider) slider.on('scroll', handleScroll);\n"]}