{"version":3,"sources":["webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/header-carousel-rxjs/client/js/prototype.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/header-carousel-rxjs/client/js/config.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/header-carousel-rxjs/client/js/store/actions.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/header-carousel-rxjs/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/header-carousel-rxjs/client/js/images/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/header-carousel-rxjs/client/js/carousel/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/header-carousel-rxjs/client/js/store/reducer.js"],"names":["Store","require","_require2","initCarousel","destroyCarousel","_require3","initImages","destroyImages","_require4","actions","types","reducer","prototype","setupStore","this","store","carousel","setupActions","_this","destroy","dispatch","setupReactions","_this2","reactions","subscribe","state","action","type","DESTROY","_toConsumableArray","Object","keys","forEach","key","unsubscribe","element","parentNode","removeChild","init","config","module","exports","component","css","base","item","image","resize","width","height","quality","elementExist","selector","arguments","length","undefined","configuration","instance","create","document","querySelector","_objectSpread","dataset","result","JSON","parse","Image","panel","images","querySelectorAll","map","index","concat","Carousel","_instance$config$swip","swiper","slidesPerView","centeredSlides","watchSlidesVisibility","spaceBetween","speed","effect","fadeEffect","crossFade","loop","preventInteractionOnTransition","autoplay","delay","disableOnInteraction","initialState"],"mappings":"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","file":"header-carousel-rxjs.d770bdf915dde76ada31.bundle.js","sourcesContent":["/* ==========================================================================\n HeaderCarouselRxjs > Client > Prototype\n ========================================================================== */\n\n/* Import modules */\nconst { Store } = require('@bluekiri/alexandria/helpers/state');\n\nconst { initCarousel, destroyCarousel } = require('./carousel');\nconst { initImages, destroyImages } = require('./images');\n\nconst { actions, types } = require('./store/actions');\nconst { reducer } = require('./store/reducer');\n\n/* Prototype */\nconst prototype = {\n /* Setup store */\n setupStore() {\n if (this.store) return this;\n\n this.store = new Store({\n carousel: reducer\n });\n\n return this;\n },\n /* Setup actions */\n setupActions() {\n if (this.actions) return this;\n\n this.actions = {\n destroy: () => this.store.dispatch(actions.destroy())\n };\n\n return this;\n },\n /* Setup reactions */\n setupReactions() {\n if (this.reactions) return this;\n\n this.reactions = {\n destroy: this.store.subscribe((state, action) => {\n if (action.type !== types.DESTROY) return;\n\n /* Images */\n destroyImages(this);\n\n /* Carousel */\n destroyCarousel(this);\n\n /* Unsubscribe */\n [...Object.keys(this.reactions)].forEach(key => this.reactions[key].unsubscribe());\n\n /* Clean DOM */\n this.element.parentNode.removeChild(this.element);\n\n /* Clean reference */\n [...Object.keys(this)].forEach(key => delete this[key]);\n })\n };\n\n return this;\n },\n /* Init */\n init() {\n if (!this.config.init) return this;\n /* Setup store */\n this.setupStore();\n\n /* Setup actions */\n this.setupActions();\n\n /* Setup reactions */\n this.setupReactions();\n\n /* Images */\n initImages(this);\n\n /* Carousel */\n initCarousel(this);\n\n return this;\n }\n};\n\n/* Exports */\nmodule.exports = prototype;\n","/* ==========================================================================\n HeaderCarouselRxjs > Client > Config\n ========================================================================== */\n\n/* Config */\nconst config = {\n component: 'HeaderCarouselRxjs',\n init: true,\n css: {\n base: 'header-carousel-rxjs',\n item: 'container'\n },\n type: {\n image: 'header-carousel-rxjs-image'\n },\n resize: {\n width: 1920,\n height: 375,\n quality: 97\n }\n};\n\nmodule.exports = () => config;\n","/* ==========================================================================\n HeaderCarouselRxjs > Client > Store > Actions\n ========================================================================== */\n\n/* Types */\nconst DESTROY = 'HEADER_CAROUSEL_RXJS::DESTROY';\n\n/* Actions */\nconst destroy = () => ({ type: DESTROY });\n\n/* Export */\nmodule.exports = {\n types: {\n DESTROY\n },\n actions: {\n destroy\n }\n};\n","/* ==========================================================================\n HeaderCarouselRxjs > Client\n ========================================================================== */\n\n/* Import modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\n\nconst prototype = require('./prototype');\nconst config = require('./config');\n\n/**\n * HeaderCarouselRxjs component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function HeaderCarouselRxjs(selector = '[data-component=HeaderCarouselRxjs]', configuration = {}) {\n if (elementExist(selector)) {\n /* Instance */\n const instance = Object.create(prototype);\n\n /* Selector */\n instance.selector = selector;\n\n /* Element */\n instance.element = document.querySelector(selector);\n\n /* Config */\n instance.config = {\n ...config(),\n ...configuration,\n ...(function getConfig() {\n if (!instance.element.dataset.config) return '';\n\n const result = JSON.parse(instance.element.dataset.config);\n instance.element.dataset.config = '';\n return result;\n })()\n };\n\n instance.init();\n\n return instance;\n }\n};\n","/* ==========================================================================\n HeaderCarouselRxjs > Client > Images\n ========================================================================== */\n\n/* Modules */\nconst Image = require('../../../../image-rxjs/client/js');\n\nconst configuration = require('../config');\n\n/* Init */\nfunction initImages(instance) {\n const panel = instance;\n\n /* Selector */\n const { selector } = instance;\n\n /* Images */\n panel.images = [...instance.element.querySelectorAll('[data-component=\"ImageRxjs\"]')].map((item, index) =>\n Image(`${selector} [data-component=\"ImageRxjs\"][data-type=\"${configuration().type.image}-${index}\"]`)\n );\n}\n\n/* Destroy */\nfunction destroyImages(instance) {\n const panel = instance;\n\n /* References */\n instance.images.forEach((image, index) => {\n image.actions.destroy();\n\n delete panel.images[index];\n });\n}\n\n/* Exports */\nmodule.exports = {\n initImages,\n destroyImages\n};\n","/* ==========================================================================\n HeaderCarouselRxjs > Client > Carousel\n ========================================================================== */\n\n/* Modules */\nconst Carousel = require('../../../../carousel-rxjs/client/js');\n\n/* Init */\nfunction initCarousel(instance) {\n const panel = instance;\n\n /* Selector */\n const { selector } = instance;\n\n /* Config */\n const { swiper = {} } = instance.config;\n\n /* Reference */\n panel.carousel = Carousel(`${selector} [data-component=\"CarouselRxjs\"]`, {\n swiper: {\n slidesPerView: 1,\n centeredSlides: true,\n watchSlidesVisibility: true,\n spaceBetween: 0,\n speed: 500,\n effect: 'fade',\n fadeEffect: {\n crossFade: true\n },\n loop: false,\n preventInteractionOnTransition: true,\n autoplay: {\n delay: 5000,\n disableOnInteraction: false\n },\n ...swiper\n }\n });\n}\n\n/* Destroy */\nfunction destroyCarousel(instance) {\n const panel = instance;\n\n /* Reference */\n instance.carousel.actions.destroy();\n delete panel.carousel;\n}\n\n/* Exports */\nmodule.exports = {\n initCarousel,\n destroyCarousel\n};\n","/* ==========================================================================\n HeaderCarouselRxjs > Client > Store > Reducer\n ========================================================================== */\n\n/* Modules */\nconst { types } = require('./actions');\n\n/* Initial state */\nconst initialState = {};\n\nfunction reducer(state = initialState, action) {\n switch (action.type) {\n case types.DESTROY:\n return state;\n default:\n return state;\n }\n}\n\n/* Exports */\nmodule.exports = {\n reducer\n};\n"],"sourceRoot":""}