{"version":3,"sources":["webpack:///./node_modules/@logitravel/comp-dsk-melia/components/carousel-info-mel/constants/index.js","webpack:///./node_modules/@logitravel/comp-dsk-melia/components/carousel-info-mel/client/js/store/actions.js","webpack:///./node_modules/@logitravel/comp-dsk-melia/components/carousel-info-mel/client/js/images/index.js","webpack:///./node_modules/@logitravel/comp-dsk-melia/components/carousel-info-mel/client/js/carousel/index.js","webpack:///./node_modules/@logitravel/comp-dsk-melia/components/carousel-info-mel/client/js/media-queries/index.js","webpack:///./node_modules/@logitravel/comp-dsk-melia/components/carousel-info-mel/client/js/prototype.js","webpack:///./node_modules/@logitravel/comp-dsk-melia/components/carousel-info-mel/client/js/index.js","webpack:///./node_modules/@logitravel/comp-dsk-melia/components/carousel-info-mel/client/js/store/reducer.js","webpack:///./node_modules/@logitravel/comp-dsk-melia/components/carousel-info-mel/client/js/config.js"],"names":["module","exports","DEVICE","MOB","QUERY","DSK","RESIZE","BANNER","width","height","operation","suboperation","quality","SWIPER","slidesPerView","slidesPerGroup","effect","fadeEffect","crossFade","spaceBetween","resistance","resistanceRatio","SWIPER_PAGINATION","DEFAULT_MOB","type","dynamicBullets","clickable","DEFAULT_DSK","TYPE2_DESKTOP","PAINT_TYPE2","EL_PAGINATION","DESTROY","types","SET_DEVICE","CHANGE_DEVICE","actions","destroy","setDevice","payload","changeDevice","ImageClient","initImages","instance","images","element","querySelectorAll","map","image","dataset","selector","destroyImages","result","forEach","CarouselClient","configuration","getPagination","config","store","paintType","device","select","getNavitation","paginationEl","querySelector","navigation","prevEl","navigationPrev","nextEl","navigationNext","pagination","el","initCarousel","inst","swiperConfig","carousel","swiper","destroyCarousel","refreshCarousel","hooks","classList","remove","removeAttribute","fromEvent","startWith","filter","mediaEvent$","query","mediaQuery","window","matchMedia","pipe","event","matches","mediaQueryList","mediaQueriesDetect","context","deviceType","dispatch","devideType","reactions","subscribe","state","action","subscriptions","mediaIsDesktop","mediaIsMobile","Store","reducer","prototype","this","data","unsubscribe","Object","keys","key","parentNode","removeChild","init","setupStore","setupActions","setupReactions","elementExist","create","document","carouselPagination","JSON","parse","initialState","component","start","css","self","type2","banner","imgExtra","img"],"mappings":"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","file":"carousel-info-mel.5a80ce25b8c892a8bb9d.bundle.js","sourcesContent":["/* ==========================================================================\n CarouselInfoMel > Constants\n ========================================================================== */\n\n/* Exports */\nmodule.exports = {\n DEVICE: {\n MOB: {\n DEVICE: 'mobile',\n QUERY: '(max-width: 1019px)'\n },\n DSK: {\n DEVICE: 'desktop',\n QUERY: '(min-width: 1020px)'\n }\n },\n RESIZE: {\n BANNER: {\n width: 720,\n height: 850,\n operation: 'resize',\n suboperation: 'crop',\n quality: 85\n }\n },\n SWIPER: {\n slidesPerView: 1,\n slidesPerGroup: 1,\n effect: 'fade',\n fadeEffect: {\n crossFade: true\n },\n spaceBetween: 0,\n resistance: false,\n resistanceRatio: 0\n },\n SWIPER_PAGINATION: {\n DEFAULT_MOB: {\n type: 'bullets',\n dynamicBullets: true,\n clickable: true\n },\n DEFAULT_DSK: {\n type: 'bullets',\n dynamicBullets: false,\n clickable: true\n },\n TYPE2_DESKTOP: {\n type: 'fraction',\n dynamicBullets: false,\n clickable: false\n }\n },\n PAINT_TYPE2: 'type2',\n EL_PAGINATION: 'carousel-rxjs__pages'\n};\n","/* ==========================================================================\n CarouselInfoMel > Client > Store > Actions\n ========================================================================== */\n\n/* Types */\nconst DESTROY = 'CAROUSEL_INFO_MEL::DESTROY';\nconst SET_DEVICE = 'CAROUSEL_INFO_MEL::SET_DEVICE';\nconst CHANGE_DEVICE = 'CAROUSEL_INFO_MEL::CHANGE_DEVICE';\n\n/* Actions */\nconst destroy = () => ({ type: DESTROY });\nconst setDevice = payload => ({ type: SET_DEVICE, payload });\nconst changeDevice = payload => ({ type: CHANGE_DEVICE, payload });\n\n/* Exports */\nmodule.exports = {\n types: {\n DESTROY,\n SET_DEVICE,\n CHANGE_DEVICE\n },\n actions: {\n destroy,\n setDevice,\n changeDevice\n }\n};\n","/* ==========================================================================\n ProductCarouselMel > Client > images\n ========================================================================== */\n\n/* Modules */\nconst ImageClient = require('@bluekiri/alexandria-contrib-components/components/image-rxjs/client/js');\n\nfunction initImages(instance) {\n const result = instance;\n result.images = [...instance.element.querySelectorAll(`[data-component=\"ImageRxjs\"]`)].map(image => {\n const { type } = image.dataset;\n return ImageClient(`${instance.selector} [data-component=\"ImageRxjs\"][data-type=\"${type}\"]`);\n });\n}\n\nfunction destroyImages(instance) {\n if (!instance.images) return;\n const result = instance;\n\n /* Destroy */\n result.images.forEach(image => {\n image.actions.destroy();\n });\n\n /* Remove reference */\n delete result.images;\n}\n\nmodule.exports = {\n initImages,\n destroyImages\n};\n","/* ==========================================================================\n CarouselInfoMel > Client > carousel\n ========================================================================== */\n\n/* Import modules */\nconst CarouselClient = require('@bluekiri/alexandria-contrib-components/components/carousel-rxjs/client/js');\nconst configuration = require('../config');\nconst { SWIPER, DEVICE, SWIPER_PAGINATION, EL_PAGINATION, PAINT_TYPE2 } = require('../../../constants');\n\nconst { MOB } = DEVICE;\nconst { DEFAULT_DSK, DEFAULT_MOB, TYPE2_DESKTOP } = SWIPER_PAGINATION;\n\nfunction getPagination(instance) {\n const { config = {}, store } = instance;\n const { paintType } = config;\n const { device } = store.select('data');\n\n /* Pagination by device DSK/MOB */\n if (device === MOB.DEVICE) return DEFAULT_MOB;\n\n /* Pagination by type of paint */\n if (paintType === PAINT_TYPE2) return TYPE2_DESKTOP;\n\n /* Pagination by default; DSK with type of paint by default */\n return DEFAULT_DSK;\n}\n\n/**\n * Get navigation config and set it depending on the device.\n * @summary If the description is long, write your summary here. Otherwise, feel free to remove this.\n * @param {object} Instance\n * @return {object} return swiper navigantion and patination configuration\n */\nfunction getNavitation(instance) {\n const paginationEl = instance.element.querySelector(`[class*=\"${EL_PAGINATION}\"]`);\n\n return {\n navigation: {\n prevEl: `${instance.selector} [data-type=\"${configuration().type.navigationPrev}\"]`,\n nextEl: `${instance.selector} [data-type=\"${configuration().type.navigationNext}\"]`\n },\n pagination: {\n el: paginationEl,\n ...getPagination(instance)\n }\n };\n}\n\n/**\n * refreshCarousel\n * @summary Destroy Carousel Instance and create new\n * @param {object} Instance\n * @return {void} Brief description of the returning value here.\n */\n\nfunction refreshCarousel(instance) {\n if (!instance.carousel) return;\n\n const { hooks = {}, store = {}, carousel = {} } = instance;\n\n const { device } = store.select('data');\n\n /* Destroy swiper instance */\n carousel.swiper.destroy();\n\n /* Clear markup pagination */\n if (device === DEVICE.DSK.DEVICE && hooks.pagination) {\n hooks.pagination.classList.remove('swiper-pagination-clickable', 'swiper-pagination-bullets-dynamic');\n hooks.pagination.removeAttribute('style');\n }\n\n initCarousel(instance);\n}\n\nfunction initCarousel(instance) {\n const inst = instance;\n\n /* ConfiguraciĆ³n Swiper */\n const swiperConfig = {\n ...SWIPER,\n ...getNavitation(instance)\n };\n\n inst.carousel = CarouselClient(\n `${instance.selector} [data-component=\"CarouselRxjs\"][data-type=\"${configuration().type.carousel}\"]`,\n { swiper: swiperConfig }\n );\n}\n\nfunction destroyCarousel(instance) {\n if (!instance.carousel) return;\n const inst = instance;\n\n /* Destroy */\n instance.carousel.actions.destroy();\n\n /* Remove referencences */\n delete inst.carousel;\n}\n\nmodule.exports = {\n initCarousel,\n destroyCarousel,\n refreshCarousel\n};\n","const { fromEvent } = require('rxjs');\nconst { startWith, map, filter } = require('rxjs/operators');\n\nconst { actions, types } = require('../store/actions');\nconst { refreshCarousel } = require('../carousel');\n\nconst {\n DEVICE: { DSK, MOB }\n} = require('../../../constants');\n\nfunction mediaEvent$(query) {\n const mediaQuery = window.matchMedia(query);\n\n return fromEvent(mediaQuery, 'change').pipe(\n startWith(mediaQuery),\n filter(event => event.matches),\n map(mediaQueryList => mediaQueryList.matches)\n );\n}\n\nfunction mediaQueriesDetect(instance) {\n const inst = instance;\n\n const { config = {} } = instance;\n const { context = {} } = config;\n const { device = DSK.DEVICE } = context;\n\n /* Extend Actions */\n inst.actions = {\n ...inst.actions,\n changeDevice: deviceType => instance.store.dispatch(actions.changeDevice(deviceType)),\n setDevice: devideType => instance.store.dispatch(actions.setDevice(devideType))\n };\n\n /* Dispatch Action set device */\n instance.actions.setDevice(device);\n\n /* Extend reactions */\n inst.reactions = {\n ...inst.reactions,\n changeDevice: instance.store.subscribe((state, action) => {\n if (action.type !== types.CHANGE_DEVICE) return;\n\n if (inst.carousel) refreshCarousel(inst);\n })\n };\n\n /* Extend subscriptions */\n inst.subscriptions = {\n ...inst.subscriptions,\n mediaIsDesktop: mediaEvent$(DSK.QUERY).subscribe(matches => {\n if (matches) instance.actions.changeDevice(DSK.DEVICE);\n }),\n mediaIsMobile: mediaEvent$(MOB.QUERY).subscribe(matches => {\n if (matches) instance.actions.changeDevice(MOB.DEVICE);\n })\n };\n}\n\nmodule.exports = {\n mediaQueriesDetect\n};\n\n// Usage\n","/* ==========================================================================\n CarouselInfoMel > Client > Prototype\n ========================================================================== */\n\n/* Import modules */\nconst { Store } = require('@bluekiri/alexandria/helpers/state');\nconst { initCarousel, destroyCarousel } = require('./carousel');\nconst { initImages, destroyImages } = require('./images');\n\nconst { actions, types } = require('./store/actions');\nconst { reducer } = require('./store/reducer');\n\nconst { mediaQueriesDetect } = require('./media-queries');\n\n/* Prototype */\nconst prototype = {\n /* Setup store */\n setupStore() {\n if (this.store) return this;\n\n this.store = new Store({\n data: 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 /* Destroy componentes */\n destroyImages(this);\n destroyCarousel(this);\n\n /* Unsubscribe */\n this.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 /* Subscribe */\n subscribe() {\n if (this.subscriptions) this.unsubscribe();\n\n this.subscriptions = {};\n\n return this;\n },\n /* Unsubscribe */\n unsubscribe() {\n if (!this.subscriptions) return this;\n\n [...Object.keys(this.subscriptions)].forEach(key => this.subscriptions[key].unsubscribe());\n\n return this;\n },\n\n /* Init */\n init() {\n if (!this.config.init) return this;\n\n /* Setup store */\n this.setupStore();\n\n /* Setup actions */\n this.setupActions();\n\n /* Setup reactions */\n this.setupReactions();\n\n /* Subscribe */\n this.subscribe();\n\n /* Init components */\n mediaQueriesDetect(this);\n initCarousel(this);\n initImages(this);\n\n return this;\n }\n};\n\n/* Exports */\nmodule.exports = prototype;\n","/* ==========================================================================\n CarouselInfoMel > 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 * CarouselInfoMel component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function CarouselInfoMel(selector = '[data-component=CarouselInfoMel]', 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 /* Hooks */\n instance.hooks = {\n pagination: instance.element.querySelector(`[${config().hooks.carouselPagination}]`)\n };\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 /* Init */\n instance.init();\n\n /* Return */\n return instance;\n }\n};\n","/* ==========================================================================\n CarouselInfoMel > Client > Store > Reducer\n ========================================================================== */\n\n/* Modules */\nconst { types } = require('./actions');\n\n/* Initial state */\nconst initialState = {\n device: null\n};\n\n/* Reducer */\nfunction reducer(state = initialState, action) {\n switch (action.type) {\n case types.SET_DEVICE:\n case types.CHANGE_DEVICE:\n return {\n ...state,\n device: action.payload\n };\n case types.DESTROY:\n default:\n return state;\n }\n}\n\n/* Exports */\nmodule.exports = {\n reducer\n};\n","/* ==========================================================================\n CarouselInfoMel > Client > Config\n ========================================================================== */\n\n/* Import modules */\n\n/* Config */\nconst config = {\n component: 'CarouselInfoMel',\n init: true,\n start: true,\n css: {\n self: 'carousel-info-mel',\n type2: 'carousel-info-mel--type2',\n image: 'image-rxjs--banner'\n },\n type: {\n carousel: 'carousel-info-mel-carousel',\n banner: 'carousel-info-mel-banner',\n imgExtra: 'carousel-info-mel-image-extra',\n img: 'carousel-info-mel-image',\n navigationPrev: 'carousel-info-mel-navigation-prev',\n navigationNext: 'carousel-info-mel-navigation-next'\n },\n hooks: {\n carouselPagination: 'data-carousel-info-mel-pages'\n }\n};\n\nmodule.exports = () => config;\n"],"sourceRoot":""}