{"version":3,"file":"580.js?id=2dd6f21868189789","mappings":"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","sources":["webpack://website-js/./src/components/ScrollSlider.vue?42d3","webpack://website-js/./src/components/ScrollSlider.vue","webpack://website-js/./src/components/ScrollSlider.vue?0f71","webpack://website-js/./src/components/ScrollSlider.vue?546d","webpack://website-js/./src/components/ScrollSlider.vue?1209","webpack://website-js/./src/components/ScrollSlider.vue?2eef"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.scroll-slider{position:relative}.scroll-slider .slide-container{scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.scroll-slider-navigation-button{position:absolute;left:15px;top:50%;margin-top:-15px;border:1px solid #0000001a;width:30px;height:30px;background:#fff;box-sizing:border-box;border-radius:15px;cursor:pointer}.scroll-slider-navigation-button:last-child{right:15px;left:unset}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"scroll-slider\"},[_c('div',{directives:[{name:\"touch\",rawName:\"v-touch:swipe.left\",value:(_vm.next),expression:\"next\",arg:\"swipe\",modifiers:{\"left\":true}},{name:\"touch\",rawName:\"v-touch:swipe.right\",value:(_vm.previous),expression:\"previous\",arg:\"swipe\",modifiers:{\"right\":true}}],staticClass:\"scroll-slider-container\"},[_vm._t(\"default\")],2),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasScroll),expression:\"hasScroll\"}],staticClass:\"scroll-slider-navigation-button\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.previous()}}},[_c('span',{attrs:{\"uk-icon\":\"icon: chevron-left\"}})]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasScroll),expression:\"hasScroll\"}],staticClass:\"scroll-slider-navigation-button\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.next()}}},[_c('span',{attrs:{\"uk-icon\":\"icon: chevron-right\"}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\n\r\n@Component({\r\n name: 'ScrollSlider',\r\n})\r\nexport default class ScrollSlider extends Vue {\r\n hasScroll = false;\r\n private container: any = null;\r\n private numberOfSlides = 0;\r\n private currentPosition = 0;\r\n private itemWidth = 0;\r\n\r\n private mounted() {\r\n this.container = this.$el.querySelector('.slide-container');\r\n this.itemWidth = this.container.querySelector('.slide-item')?.width ?? 150;\r\n this.numberOfSlides = this.container.querySelectorAll('.slide-item')?.length ?? 0;\r\n window.addEventListener('resize', this.handleResize);\r\n this.handleResize();\r\n }\r\n\r\n private unmounted() {\r\n window.removeEventListener('resize', this.handleResize);\r\n }\r\n\r\n get slideMaxWidth() {\r\n return this.numberOfSlides * this.itemWidth;\r\n }\r\n\r\n private handleResize() {\r\n this.hasScroll = this.container.scrollWidth > this.container.clientWidth;\r\n }\r\n \r\n previous() {\r\n const newSliderScrollPos = this.currentPosition - this.itemWidth;\r\n\r\n if (newSliderScrollPos < 0) {\r\n return;\r\n }\r\n \r\n this.currentPosition = newSliderScrollPos;\r\n this.container.scrollTo(newSliderScrollPos, 0);\r\n }\r\n\r\n next() {\r\n const newSliderScrollPos = this.currentPosition + this.itemWidth;\r\n if (newSliderScrollPos >= this.slideMaxWidth)\r\n return;\r\n this.currentPosition = newSliderScrollPos;\r\n\r\n this.container.scrollTo(newSliderScrollPos, 0);\r\n \r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ScrollSlider.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ScrollSlider.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ScrollSlider.vue?vue&type=template&id=519a89cd&\"\nimport script from \"./ScrollSlider.vue?vue&type=script&lang=ts&\"\nexport * from \"./ScrollSlider.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ScrollSlider.vue?vue&type=style&index=0&id=519a89cd&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// style-loader: Adds some css to the DOM by adding a