{"version":3,"sources":["webpack:///./assets/javascripts/modules/components/SimpleCarouselComponent.js","webpack:///./assets/javascripts/modules/utils/mediaBreakpoints.js"],"names":["SimpleCarouselComponent","htmlEl","_classCallCheck","this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","Component","main","prevArrow","nextArrow","navDots","_this2","_get","prototype","dom","readDOM","matchBreakpoints","importLibrary","then","initCarousel","interval","_interval","_slicedToArray","minpx","maxpx","window","matchMedia","matches","_this3","bps","$component","dataset","activeBreakpoint","split","map","bp","trim","filter","length","reduce","acc","mediaMatch","MEDIA_BREAKPOINTS","_this4","Promise","resolve","reject","moduleLoader","loadCarouselAndExecute","module","error","querySelector","SELECTORS","_this5","$main","$","toBoolean","str","def","undefined","toNumber","Number","responsive","carouselSm","breakpointSMSettings","slidesToShow","slidesToShowSm","dots","dotsSm","arrows","arrowsSm","centerMode","centerModeSm","centerPadding","centerPaddingSm","infinite","infiniteSm","swipeToSlide","swipeToSlideSm","breakpointSM","breakpoint","parseInt","settings","carouselSmDisable","push","carouselMd","breakpointMDSettings","slidesToShowMd","dotsMd","arrowsMd","centerModeMd","centerPaddingMd","infiniteMd","swipeToSlideMd","breakpointMD","carouselMdDisable","carouselLg","breakpointLGSettings","slidesToShowLg","dotsLg","arrowsLg","centerModeLg","centerPaddingLg","infiniteLg","swipeToSlideLg","breakpointLG","carouselLgDisable","opts","fade","autoplay","autoplaySpeed","slidesToScroll","appendDots","variableWidth","on","e","slick","emit","$customEvents","SIMPLE_CAROUSEL","init","originalEvent","curr","next","beforeChange","console","log","_this6","sm","md","lg","xl"],"mappings":"iyBAGqBA,cAenB,SAAAA,EAAYC,GAAQ,mGAAAC,CAAAC,KAAAH,oKAAAI,CAAAD,MAAAH,EAAAK,WAAAC,OAAAC,eAAAP,IAAAQ,KAAAL,KACZF,uUAhB2CQ,iDAGjD,MAAO,4DAIP,OACEC,KAAM,iDACNC,UAAW,oBACXC,UAAW,oBACXC,QAAS,2DAQJ,IAAAC,EAAAX,gQACPY,CAAAf,EAAAgB,UAAAX,WAAAC,OAAAC,eAAAP,EAAAgB,WAAA,SAAAb,MAAAK,KAAAL,MACAA,KAAKc,IAAMd,KAAKe,UAEXf,KAAKc,IAAIP,MAASP,KAAKgB,oBAE5BhB,KAAKiB,gBAAgBC,KAAK,WACxBP,EAAKQ,oDAIEC,GAAU,IAAAC,EAAAC,EACIF,EADJ,GACZG,EADYF,EAAA,GACLG,EADKH,EAAA,GAEnB,OAAOI,OAAOC,WAAP,0BAA4CH,EAA5C,uBAAwEC,EAAxE,OAAoFG,mDAG1E,IAAAC,EAAA5B,KACX6B,GAAO7B,KAAK8B,WAAWC,QAAQC,kBAAoB,IACtDC,MAAM,KACNC,IAAI,SAAAC,GAAA,OAAMA,EAAGC,SACbC,OAAO,SAAAF,GAAA,OAAMA,IAEhB,OAAKN,EAAIS,QAEFT,EAAIU,OAAO,SAACC,EAAKL,GACtB,OAAOK,GAAOZ,EAAKa,WAAWC,IAAkBP,MAC/C,2CAGW,IAAAQ,EAAA3C,KACd,OAAO,IAAI4C,QAAQ,SAACC,EAASC,GAC3BH,EAAKI,aAAaC,uBAChB,SAAAC,GAAYJ,EAAQI,IACpB,SAAAC,GAAWJ,EAAOI,yCAMtB,OACE3C,KAAMP,KAAK8B,WAAWqB,cAAcnD,KAAKoD,UAAU7C,MACnDC,UAAWR,KAAK8B,WAAWqB,cAAcnD,KAAKoD,UAAU5C,WACxDC,UAAWT,KAAK8B,WAAWqB,cAAcnD,KAAKoD,UAAU3C,WACxDC,QAASV,KAAK8B,WAAWqB,cAAcnD,KAAKoD,UAAU1C,iDAI3C,IAAA2C,EAAArD,KACPsD,EAAQC,EAAEvD,KAAKc,IAAIP,MACnBiD,EAAY,SAACC,EAAKC,GAAN,YAAsBC,IAARF,EAA4B,SAARA,EAAiBC,GAC/DE,EAAW,SAACH,EAAKC,GAAN,YAAsBC,IAARF,EAAoBI,OAAOJ,GAAOC,GAG7DI,KAGJ,QAAgD,IAArC9D,KAAKc,IAAIP,KAAKwB,QAAQgC,WAA6B,CAC5D,IAAMC,GACJC,aAAcL,EAAS5D,KAAKc,IAAIP,KAAKwB,QAAQmC,eAAgB,GAC7DC,KAAMX,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQqC,QAAQ,GAC9CC,OAAQb,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQuC,UAAU,GAClDC,WAAYf,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQyC,cAAc,GAC1DC,cAAezE,KAAKc,IAAIP,KAAKwB,QAAQ2C,gBACrCC,SAAUnB,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQ6C,YAAY,GACtDC,aAAcrB,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQ+C,gBAAgB,IAE1DC,GACJC,WAAkD,KAArChF,KAAKc,IAAIP,KAAKwB,QAAQgC,WAAsBkB,SAASjF,KAAKc,IAAIP,KAAKwB,QAAQgC,WAAW,IAAM,IACzGmB,SAAW1B,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQoD,mBAAmB,GAAS,UAAYnB,GAErFF,EAAWsB,KAAKL,GAGlB,QAAgD,IAArC/E,KAAKc,IAAIP,KAAKwB,QAAQsD,WAA6B,CAC5D,IAAIC,GACFrB,aAAcL,EAAS5D,KAAKc,IAAIP,KAAKwB,QAAQwD,eAAgB,GAC7DpB,KAAMX,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQyD,QAAQ,GAC9CnB,OAAQb,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQ0D,UAAU,GAClDlB,WAAYf,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQ2D,cAAc,GAC1DjB,cAAezE,KAAKc,IAAIP,KAAKwB,QAAQ4D,gBACrChB,SAAUnB,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQ6D,YAAY,GACtDf,aAAcrB,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQ8D,gBAAgB,IAE5DC,GACFd,WAAkD,KAArChF,KAAKc,IAAIP,KAAKwB,QAAQsD,WAAsBJ,SAASjF,KAAKc,IAAIP,KAAKwB,QAAQsD,WAAW,IAAM,IACzGH,SAAW1B,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQgE,mBAAmB,GAAS,UAAYT,GAErFxB,EAAWsB,KAAKU,GAGlB,QAAgD,IAArC9F,KAAKc,IAAIP,KAAKwB,QAAQiE,WAA6B,CAC5D,IAAMC,GACJhC,aAAcL,EAAS5D,KAAKc,IAAIP,KAAKwB,QAAQmE,eAAgB,GAC7D/B,KAAMX,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQoE,QAAQ,GAC9C9B,OAAQb,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQqE,UAAU,GAClD7B,WAAYf,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQsE,cAAc,GAC1D5B,cAAezE,KAAKc,IAAIP,KAAKwB,QAAQuE,gBACrC3B,SAAUnB,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQwE,YAAY,GACtD1B,aAAcrB,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQyE,gBAAgB,IAE1DC,GACJzB,WAAkD,KAArChF,KAAKc,IAAIP,KAAKwB,QAAQiE,WAAsBf,SAASjF,KAAKc,IAAIP,KAAKwB,QAAQiE,WAAW,IAAM,IACzGd,SAAW1B,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQ2E,mBAAmB,GAAS,UAAYT,GAErFnC,EAAWsB,KAAKqB,GAGlB,IAAIE,GACFxC,KAAMX,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQoC,MAAM,GAC5CyC,KAAMpD,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQ6E,MAAM,GAC5CrC,WAAYf,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQwC,YAAY,GACxDF,OAAQb,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQsC,QAAQ,GAChDwC,SAAUrD,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQ8E,UAAU,GACpDlC,SAAUnB,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQ4C,UAAU,GACpDmC,cAAelD,EAAS5D,KAAKc,IAAIP,KAAKwB,QAAQ+E,cAAe,KAC7D7C,aAAcL,EAAS5D,KAAKc,IAAIP,KAAKwB,QAAQkC,aAAc,GAC3D8C,eAAgBnD,EAAS5D,KAAKc,IAAIP,KAAKwB,QAAQgF,eAAgB,GAC/DvG,UAAWR,KAAKc,IAAIN,UACpBC,UAAWT,KAAKc,IAAIL,UACpBuG,WAAYhH,KAAKc,IAAIJ,QAAUV,KAAKc,IAAIJ,QAAUV,KAAKc,IAAIP,KAC3D0G,cAAezD,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQkF,eAAe,GAC9DpC,aAAcrB,EAAUxD,KAAKc,IAAIP,KAAKwB,QAAQ8C,cAAc,GAC5Df,WAAYA,QAGqC,IAAxC9D,KAAKc,IAAIP,KAAKwB,QAAQ0C,gBAAgCkC,EAAKlC,cAAgBzE,KAAKc,IAAIP,KAAKwB,QAAQ0C,eAE5GnB,EAAM4D,GAAG,OAAQ,SAACC,EAAGC,GACnB/D,EAAKgE,KAAKhE,EAAKiE,cAAcC,gBAAgBC,MAAOC,cAAeN,EAAGC,YAGxE9D,EAAM4D,GAAG,eAAgB,SAACC,EAAGC,EAAOM,EAAMC,GACxCtE,EAAKgE,KAAKhE,EAAKiE,cAAcC,gBAAgBK,cAAeH,cAAeN,EAAGC,QAAOM,OAAMC,WAE7FE,QAAQC,IAAI,4BAA4BnB,GACxCrD,EAAM8D,MAAMT,gDAGO,IAAAoB,EAAA/H,KACnBA,KAAKc,IAAMd,KAAKe,UAChBf,KAAKiB,gBAAgBC,KAAK,WACxB6G,EAAK5G,0BAhKUtB,gECIN6C,KANXsF,IAAK,EAAG,KACRC,IAAK,IAAK,KACVC,IAAK,IAAK,MACVC,IAAK,KAAM","file":"component-SimpleCarouselComponent.chunks.js","sourcesContent":["import Component from \"../abstracts/Component\";\nimport MEDIA_BREAKPOINTS from '../utils/mediaBreakpoints';\n\nexport default class SimpleCarouselComponent extends Component {\n\n get COMPONENTNAME() {\n return 'SimpleCarouselComponent';\n }\n\n get SELECTORS() {\n return {\n main: '[data-carousel=\"true\"]:not(.slick-initialized)',\n prevArrow: '[data-prev-arrow]',\n nextArrow: '[data-next-arrow]',\n navDots: '[data-nav-dots]',\n };\n }\n\n constructor(htmlEl) {\n super(htmlEl);\n }\n\n render() {\n super.render();\n this.dom = this.readDOM();\n\n if (!this.dom.main || !this.matchBreakpoints()) return;\n\n this.importLibrary().then(() => {\n this.initCarousel();\n });\n }\n\n mediaMatch(interval) {\n const [minpx, maxpx] = interval;\n return window.matchMedia(`screen and (min-width: ${minpx}px) and (max-width: ${maxpx}px)`).matches;\n }\n\n matchBreakpoints() {\n const bps = (this.$component.dataset.activeBreakpoint || '')\n .split(',')\n .map(bp => bp.trim())\n .filter(bp => bp);\n\n if (!bps.length) return true;\n\n return bps.reduce((acc, bp) => {\n return acc || this.mediaMatch(MEDIA_BREAKPOINTS[bp]);\n }, false);\n }\n\n importLibrary() {\n return new Promise((resolve, reject) => {\n this.moduleLoader.loadCarouselAndExecute(\n module => { resolve(module) },\n error => { reject(error) }\n );\n })\n }\n\n readDOM() {\n return {\n main: this.$component.querySelector(this.SELECTORS.main),\n prevArrow: this.$component.querySelector(this.SELECTORS.prevArrow),\n nextArrow: this.$component.querySelector(this.SELECTORS.nextArrow),\n navDots: this.$component.querySelector(this.SELECTORS.navDots),\n }\n }\n\n initCarousel() {\n const $main = $(this.dom.main);\n const toBoolean = (str, def) => str !== undefined ? str === 'true' : def;\n const toNumber = (str, def) => str !== undefined ? Number(str) : def;\n\n // responsive json\n let responsive = [];\n // breakpoints settings to add only if active\n // SM\n if (typeof this.dom.main.dataset.carouselSm !== 'undefined' ) {\n const breakpointSMSettings = {\n slidesToShow: toNumber(this.dom.main.dataset.slidesToShowSm, 1),\n dots: toBoolean(this.dom.main.dataset.dotsSm, true),\n arrows: toBoolean(this.dom.main.dataset.arrowsSm, true),\n centerMode: toBoolean(this.dom.main.dataset.centerModeSm, false),\n centerPadding: this.dom.main.dataset.centerPaddingSm,\n infinite: toBoolean(this.dom.main.dataset.infiniteSm, true),\n swipeToSlide: toBoolean(this.dom.main.dataset.swipeToSlideSm, false)\n };\n const breakpointSM = {\n breakpoint: (this.dom.main.dataset.carouselSm !== '') ? parseInt(this.dom.main.dataset.carouselSm,10) : 375,\n settings: (toBoolean(this.dom.main.dataset.carouselSmDisable, false) ? \"unslick\" : breakpointSMSettings)\n };\n responsive.push(breakpointSM);\n }\n // MD\n if (typeof this.dom.main.dataset.carouselMd !== 'undefined' ) {\n let breakpointMDSettings = {\n slidesToShow: toNumber(this.dom.main.dataset.slidesToShowMd, 1),\n dots: toBoolean(this.dom.main.dataset.dotsMd, true),\n arrows: toBoolean(this.dom.main.dataset.arrowsMd, true),\n centerMode: toBoolean(this.dom.main.dataset.centerModeMd, false),\n centerPadding: this.dom.main.dataset.centerPaddingMd,\n infinite: toBoolean(this.dom.main.dataset.infiniteMd, true),\n swipeToSlide: toBoolean(this.dom.main.dataset.swipeToSlideMd, false)\n };\n let breakpointMD = {\n breakpoint: (this.dom.main.dataset.carouselMd !== '') ? parseInt(this.dom.main.dataset.carouselMd,10) : 768,\n settings: (toBoolean(this.dom.main.dataset.carouselMdDisable, false) ? \"unslick\" : breakpointMDSettings)\n };\n responsive.push(breakpointMD);\n }\n // LG\n if (typeof this.dom.main.dataset.carouselLg !== 'undefined' ) {\n const breakpointLGSettings = {\n slidesToShow: toNumber(this.dom.main.dataset.slidesToShowLg, 1),\n dots: toBoolean(this.dom.main.dataset.dotsLg, true),\n arrows: toBoolean(this.dom.main.dataset.arrowsLg, true),\n centerMode: toBoolean(this.dom.main.dataset.centerModeLg, false),\n centerPadding: this.dom.main.dataset.centerPaddingLg,\n infinite: toBoolean(this.dom.main.dataset.infiniteLg, true),\n swipeToSlide: toBoolean(this.dom.main.dataset.swipeToSlideLg, false)\n };\n const breakpointLG = {\n breakpoint: (this.dom.main.dataset.carouselLg !== '') ? parseInt(this.dom.main.dataset.carouselLg,10) : 992,\n settings: (toBoolean(this.dom.main.dataset.carouselLgDisable, false) ? \"unslick\" : breakpointLGSettings)\n };\n responsive.push(breakpointLG);\n }\n // all options\n let opts = {\n dots: toBoolean(this.dom.main.dataset.dots, true),\n fade: toBoolean(this.dom.main.dataset.fade, false),\n centerMode: toBoolean(this.dom.main.dataset.centerMode, false),\n arrows: toBoolean(this.dom.main.dataset.arrows, true),\n autoplay: toBoolean(this.dom.main.dataset.autoplay, true),\n infinite: toBoolean(this.dom.main.dataset.infinite, true),\n autoplaySpeed: toNumber(this.dom.main.dataset.autoplaySpeed, 3000),\n slidesToShow: toNumber(this.dom.main.dataset.slidesToShow, 1),\n slidesToScroll: toNumber(this.dom.main.dataset.slidesToScroll, 1),\n prevArrow: this.dom.prevArrow,\n nextArrow: this.dom.nextArrow,\n appendDots: this.dom.navDots ? this.dom.navDots : this.dom.main,\n variableWidth: toBoolean(this.dom.main.dataset.variableWidth, false),\n swipeToSlide: toBoolean(this.dom.main.dataset.swipeToSlide, false),\n responsive: responsive\n }\n\n if (typeof this.dom.main.dataset.centerPadding !== 'undefined' ) opts.centerPadding = this.dom.main.dataset.centerPadding;\n\n $main.on('init', (e, slick) => {\n this.emit(this.$customEvents.SIMPLE_CAROUSEL.init, {originalEvent: e, slick});\n });\n\n $main.on('beforeChange', (e, slick, curr, next) => {\n this.emit(this.$customEvents.SIMPLE_CAROUSEL.beforeChange, {originalEvent: e, slick, curr, next});\n });\n console.log('[SimpleCarouselComponent]',opts);\n $main.slick(opts);\n }\n\n initAsynchCarousel() {\n this.dom = this.readDOM();\n this.importLibrary().then(() => {\n this.initCarousel();\n });\n }\n}\n","const MEDIA_BREAKPOINTS = {\n sm: [0, 767],\n md: [768, 991],\n lg: [992, 1279],\n xl: [1280, 99999],\n};\n\nexport default MEDIA_BREAKPOINTS;"],"sourceRoot":""}