{"version":3,"sources":["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/prototype.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/images/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/header-carousel-rxjs/client/js/store/reducer.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/header-carousel-rxjs/client/js/index.js"],"names":["config","component","init","css","base","item","type","image","resize","width","height","quality","module","exports","DESTROY","types","actions","destroy","Store","require","_require2","initCarousel","destroyCarousel","_require3","initImages","destroyImages","_require4","reducer","prototype","setupStore","this","store","carousel","setupActions","_this","dispatch","setupReactions","_this2","reactions","subscribe","state","action","_toConsumableArray","Object","keys","forEach","key","unsubscribe","element","parentNode","removeChild","Carousel","instance","panel","selector","_instance$config$swip","swiper","concat","_objectSpread","slidesPerView","centeredSlides","watchSlidesVisibility","spaceBetween","speed","effect","fadeEffect","crossFade","loop","preventInteractionOnTransition","autoplay","delay","disableOnInteraction","Image","configuration","images","querySelectorAll","map","index","initialState","arguments","length","undefined","elementExist","create","document","querySelector","dataset","result","JSON","parse"],"mappings":"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","file":"header-carousel-rxjs.bundle.js","sourcesContent":["/* ==========================================================================\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 > 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 > 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 > 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 > 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","/* ==========================================================================\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"],"sourceRoot":""}