{"version":3,"sources":["webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/tabs-rxjs/client/js/store/reducer.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/tabs-rxjs/client/js/config.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/tabs-rxjs/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/tabs-rxjs/client/js/images/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/tabs-rxjs/client/js/store/actions.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/tabs-route/client/js/store/reducer.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/tabs-rxjs/client/js/prototype.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/tabs-route/client/js/index.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/tabs-route/client/js/config.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/tabs-rxjs/client/js/navigation/index.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/tabs-route/client/js/store/actions.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/tabs-route/client/js/prototype.js"],"names":["types","require","initialState","tab","disableds","disabled","module","exports","reducer","state","arguments","length","undefined","action","type","CHANGE_TAB","SET_TAB","_objectSpread","payload","DISABLE_TAB","concat","_toConsumableArray","ENABLE_TAB","filter","item","ENABLE","DISABLE","DESTROY","config","component","init","start","css","vertical","navigation","active","description","image","elementExist","prototype","selector","configuration","instance","Object","create","element","document","querySelector","hooks","navigations","querySelectorAll","contents","dataset","result","JSON","parse","Image","initImages","hasImages","panel","imageEls","images","map","destroyImages","forEach","actions","destroy","changeTab","setTab","enableTab","disableTab","disable","enable","Store","fromEvent","_require3","tap","_require4","_require6","initNavigation","destroyNavigation","_require7","setupStore","this","store","data","setupActions","_this","dispatch","index","_this$store$select","select","includes","_this$store$select2","_this$store$select3","_this$store$select4","setupReactions","_this2","reactions","subscribe","unsubscribe","keys","key","parentNode","removeChild","classList","remove","add","_this3","subscriptions","pipe","event","target","closest","_event$target$closest","_event$target$closest2","link","hasLink","_ref","preventDefault","_ref2","tabsRedirect","some","callbackRedirect","previusTab","window","location","href","_this4","_this5","removeAttribute","Tabs","tabRoute","tabs","imgConfig","height","width","mapConfig","Carousel","swiper","slidesPerView","slidesPerGroup","loop","spaceBetween","speed","autoplay","breakpoints","768","1200","1600","_require2","panoramicPortElement","panoramicPorts","panoramicImagesArray","parentElement","dataIndex","getAttribute"],"mappings":"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","file":"vendors~tabs-route.74845f4d329946f1175e.bundle.js","sourcesContent":["/* ==========================================================================\n TabsRxjs > Client > Store > Reducer\n ========================================================================== */\n\n/* Modules */\nconst { types } = require('./actions');\n\n/* Initial state */\nconst initialState = {\n tab: 0,\n disableds: [],\n disabled: false\n};\n\n/* Reducer */\nfunction reducer(state = initialState, action) {\n switch (action.type) {\n case types.CHANGE_TAB:\n case types.SET_TAB:\n return {\n ...state,\n tab: action.payload\n };\n case types.DISABLE_TAB:\n return {\n ...state,\n disableds: [...state.disableds, action.payload]\n };\n case types.ENABLE_TAB:\n return {\n ...state,\n disableds: state.disableds.filter(item => item !== action.payload)\n };\n case types.ENABLE:\n return {\n ...state,\n disabled: false\n };\n case types.DISABLE:\n return {\n ...state,\n disabled: true\n };\n case types.DESTROY:\n default:\n return state;\n }\n}\n\n/* Exports */\nmodule.exports = {\n reducer\n};\n","/* ==========================================================================\n TabsRxjs > Client > Config\n ========================================================================== */\n\n/* Import modules */\n\n/* Config */\nconst config = {\n component: 'TabsRxjs',\n init: true,\n start: true,\n css: {\n vertical: 'tabs-rxjs--vertical',\n navigation: 'tabs-rxjs__navigation',\n active: 'is-active',\n disabled: 'is-disabled',\n description: 'hasDescription'\n },\n type: {\n navigation: 'tabs-rxjs-navigation',\n image: 'tabs-rxjs-image'\n }\n};\n\nmodule.exports = () => config;\n","/* ==========================================================================\n TabsRxjs > 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 * TabsRxjs component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function TabsRxjs(selector = '[data-component=TabsRxjs]', 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 navigation: instance.element.querySelector('[data-navigation]'),\n navigations: [...instance.element.querySelectorAll('[data-navigation] [data-tab]')],\n contents: [...instance.element.querySelectorAll('[data-content]')]\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 TabsRxjs > 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 /* Data */\n const { hasImages } = instance.config;\n\n if (!hasImages) {\n return;\n }\n\n const panel = instance;\n\n /* Selector */\n const { selector } = instance;\n\n /* References */\n const imageEls = instance.element.querySelectorAll(\n `[data-component='ImageRxjs'][data-type^='${configuration().type.image}']`\n );\n\n panel.images = [...imageEls].map(image =>\n Image(`${selector} [data-component='ImageRxjs'][data-type='${image.dataset.type}']`)\n );\n}\n\n/* Destroy */\nfunction destroyImages(instance) {\n /* Data */\n const { hasImages } = instance.config;\n\n if (!hasImages) {\n return;\n }\n\n const panel = instance;\n\n /* References */\n instance.images.forEach(image => image.actions.destroy());\n delete panel.images;\n}\n\n/* Exports */\nmodule.exports = {\n initImages,\n destroyImages\n};\n","/* ==========================================================================\n TabsRxjs > Client > Store > Actions\n ========================================================================== */\n\n/* Types */\nconst DESTROY = 'TABS::DESTROY';\n\nconst CHANGE_TAB = 'TABS::CHANGE_TAB';\nconst SET_TAB = 'TABS::SET_TAB';\n\nconst DISABLE = 'TABS::DISABLE';\nconst ENABLE = 'TABS::ENABLE';\n\nconst DISABLE_TAB = 'TABS::DISABLE_TAB';\nconst ENABLE_TAB = 'TABS::ENABLE_TAB';\n\n/* Actions */\nconst destroy = () => ({ type: DESTROY });\n\nconst disable = () => ({ type: DISABLE });\nconst enable = () => ({ type: ENABLE });\n\nconst changeTab = payload => ({ type: CHANGE_TAB, payload });\nconst setTab = payload => ({ type: SET_TAB, payload });\n\nconst disableTab = payload => ({ type: DISABLE_TAB, payload });\nconst enableTab = payload => ({ type: ENABLE_TAB, payload });\n\n/* Exports */\nmodule.exports = {\n types: {\n DESTROY,\n CHANGE_TAB,\n SET_TAB,\n ENABLE_TAB,\n DISABLE_TAB,\n DISABLE,\n ENABLE\n },\n actions: {\n destroy,\n changeTab,\n setTab,\n enableTab,\n disableTab,\n disable,\n enable\n }\n};\n","/* ==========================================================================\n TabsRoute > Client > Store > Reducer\n ========================================================================== */\n\n/* Modules */\nconst { types } = require('./actions');\n\n/* Initial state */\nconst initialState = {};\n\n/* Reducer */\nfunction reducer(state = initialState, action) {\n switch (action.type) {\n case types.DESTROY:\n default:\n return state;\n }\n}\n\n/* Exports */\nmodule.exports = {\n reducer\n};\n","/* ==========================================================================\n TabsRxjs > Client > Prototype\n ========================================================================== */\n\n/* Import modules */\nconst { Store } = require('@bluekiri/alexandria/helpers/state');\n\nconst { fromEvent } = require('rxjs');\nconst { filter, map, tap } = require('rxjs/operators');\n\nconst { actions, types } = require('./store/actions');\nconst { reducer } = require('./store/reducer');\n\nconst { initNavigation, destroyNavigation } = require('./navigation');\nconst { initImages, destroyImages } = require('./images');\n\nconst configuration = require('./config');\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 changeTab: index => {\n const { disableds, tab } = this.store.select('data');\n\n if (disableds.includes(index)) {\n return false;\n }\n\n if (index === tab) {\n return false;\n }\n\n return this.store.dispatch(actions.changeTab(index));\n },\n setTab: index => {\n const { disableds, tab } = this.store.select('data');\n\n if (disableds.includes(index)) {\n return false;\n }\n\n if (index === tab) {\n return false;\n }\n\n return this.store.dispatch(actions.setTab(index));\n },\n enableTab: index => {\n const { disableds, tab } = this.store.select('data');\n\n if (!disableds.includes(index)) {\n return false;\n }\n\n if (index === tab) {\n return false;\n }\n\n return this.store.dispatch(actions.enableTab(index));\n },\n disableTab: index => {\n const { disableds, tab } = this.store.select('data');\n\n if (disableds.includes(index)) {\n return false;\n }\n\n if (index === tab) {\n return false;\n }\n\n return this.store.dispatch(actions.disableTab(index));\n },\n enable: () => this.store.dispatch(actions.enable()),\n disable: () => this.store.dispatch(actions.disable())\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 /* Navigation */\n destroyNavigation(this);\n\n /* Images */\n destroyImages(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 changeTab: this.store.subscribe((state, action) => {\n if (action.type !== types.CHANGE_TAB) return;\n\n /* Clean */\n this.hooks.navigations.forEach(item => item.classList.remove(configuration().css.active));\n this.hooks.contents.forEach(item => item.classList.remove(configuration().css.active));\n\n /* Set active */\n this.hooks.navigations[action.payload].classList.add(configuration().css.active);\n this.hooks.contents[action.payload].classList.add(configuration().css.active);\n }),\n setTab: this.store.subscribe((state, action) => {\n if (action.type !== types.SET_TAB) return;\n\n /* Clean */\n this.hooks.navigations.forEach(item => item.classList.remove(configuration().css.active));\n this.hooks.contents.forEach(item => item.classList.remove(configuration().css.active));\n\n /* Set active */\n this.hooks.navigations[action.payload].classList.add(configuration().css.active);\n this.hooks.contents[action.payload].classList.add(configuration().css.active);\n }),\n disableTab: this.store.subscribe((state, action) => {\n if (action.type !== types.DISABLE_TAB) return;\n\n /* Set disabled */\n this.hooks.navigations[action.payload].classList.add(configuration().css.disabled);\n }),\n enableTab: this.store.subscribe((state, action) => {\n if (action.type !== types.ENABLE_TAB) return;\n\n /* Clean disabled */\n this.hooks.navigations[action.payload].classList.remove(configuration().css.disabled);\n }),\n enable: this.store.subscribe((state, action) => {\n if (action.type !== types.ENABLE) return;\n\n this.element.classList.remove(configuration().css.disabled);\n }),\n disable: this.store.subscribe((state, action) => {\n if (action.type !== types.DISABLE) return;\n\n this.element.classList.add(configuration().css.disabled);\n })\n };\n\n return this;\n },\n /* Subscribe */\n subscribe() {\n if (this.subscriptions) this.unsubscribe();\n\n this.subscriptions = {\n changeTab: fromEvent(this.hooks.navigation, 'click')\n .pipe(\n filter(() => {\n /* Data */\n const { disabled } = this.store.select('data');\n\n return !disabled;\n }),\n filter(event => event.target.closest('[data-tab]')),\n map(event => {\n /* Data */\n const { tab, link = false } = event.target.closest('[data-tab]').dataset;\n\n return {\n event,\n index: +tab,\n hasLink: !!link,\n link\n };\n }),\n tap(({ event, hasLink }) => {\n if (!hasLink) return;\n\n event.preventDefault();\n })\n )\n .subscribe(({ index, link }) => {\n const { tab } = this.store.select('data');\n\n /* Redirect to link or execute callbacRedirect */\n if (this.config.tabsRedirect.some(item => item === index)) {\n if (this.config.callbackRedirect) {\n this.config.callbackRedirect({ previusTab: tab, tab: index, link });\n return;\n }\n\n window.location.href = link;\n return;\n }\n\n /* Change tab if the selected is distinct */\n if (index === tab) return;\n\n /* Dispatch */\n this.actions.changeTab(index);\n })\n };\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 /* Start */\n start() {\n if (!this.config.start) return this;\n\n /* Configure initial disableds from data */\n const { navigations } = this.hooks;\n\n navigations.forEach(item => {\n if (!('disabled' in item.dataset)) {\n return;\n }\n\n const { tab } = item.dataset;\n\n /* Disable tab */\n this.actions.disableTab(+tab);\n\n /* Clean dataset */\n item.removeAttribute('data-disabled');\n });\n\n return this;\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 navigation */\n initNavigation(this);\n\n /* Images */\n initImages(this);\n\n /* Start */\n this.start();\n\n return this;\n }\n};\n\n/* Exports */\nmodule.exports = prototype;\n","/* ==========================================================================\n TabsRoute > Client\n ========================================================================== */\n\n/* Import modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\n\nconst Tabs = require('@bluekiri/alexandria-contrib-components/components/tabs-rxjs/client/js');\nconst Image = require('@bluekiri/alexandria-contrib-components/components/image-rxjs/client/js');\n\nconst prototype = require('./prototype');\nconst config = require('./config');\n\n/**\n * TabsRoute component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function TabsRoute(selector = '[data-component=TabsRoute]', configuration = {}) {\n if (elementExist(selector)) {\n /* Instance */\n const instance = Object.create(prototype);\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.hooks = {\n tabRoute: instance.element.querySelectorAll(`[data-tab-route]`),\n tabs: instance.element.querySelectorAll(`[data-tab]`),\n contents: instance.element.querySelectorAll(`[data-content]`)\n };\n\n instance.tabs = Tabs(`${selector} [data-component=\"TabsRxjs\"]`);\n\n instance.map = Image(`${selector} [data-component=\"ImageRxjs\"][data-type=\"${config().type.map}\"]`);\n\n instance.images = [...instance.element.querySelectorAll(`${selector} [data-content]`)].map((item, index) => {\n return Image(`${selector} [data-component=\"ImageRxjs\"][data-type=\"${config().type.image}-${index}\"]`);\n });\n\n /* Init */\n instance.init();\n\n /* Return */\n return instance;\n }\n};\n","/* ==========================================================================\n TabsRoute > Client > Config\n ========================================================================== */\n\n/* Import modules */\n\n/* Config */\nconst config = {\n component: 'TabsRoute',\n init: true,\n start: true,\n css: {\n map: 'tabs-route__map'\n },\n type: {\n image: 'tabs-route-image',\n map: 'tabs-route-map'\n },\n imgConfig: {\n height: 300,\n width: 970\n },\n mapConfig: {\n height: 214,\n width: 305\n }\n};\n\nmodule.exports = () => config;\n","/* ==========================================================================\n TabsRxjs > Client > Navigation\n ========================================================================== */\n\n/* Modules */\nconst Carousel = require('../../../../carousel-rxjs/client/js');\n\nconst configuration = require('../config');\n\n/* Init navigation */\nfunction initNavigation(instance) {\n if (instance.config.type === 'vertical') return;\n\n const panel = instance;\n\n /* Data */\n const { selector, config } = instance;\n\n /* Carousel */\n panel.navigation = Carousel(\n `${selector} [data-component='CarouselRxjs'][data-type='${configuration().type.navigation}']`,\n {\n swiper: {\n slidesPerView: 6,\n slidesPerGroup: 6,\n loop: false,\n spaceBetween: 0,\n speed: 500,\n autoplay: false,\n breakpoints: {\n // when window width is <= 480px\n 768: {\n slidesPerView: 2,\n slidesPerGroup: 2\n },\n // when window width is <= 720px\n 1200: {\n slidesPerView: 3,\n slidesPerGroup: 3\n },\n\n // when window width is <= 1600px\n 1600: {\n slidesPerView: 5,\n slidesPerGroup: 5\n }\n },\n ...config.swiper\n }\n }\n );\n}\n\n/* Destroy navigation */\nfunction destroyNavigation(instance) {\n if (instance.config.type === 'vertical') return;\n const panel = instance;\n\n /* Carousel */\n instance.navigation.actions.destroy();\n delete panel.navigation;\n}\n\n/* Exports */\nmodule.exports = {\n initNavigation,\n destroyNavigation\n};\n","/* ==========================================================================\n TabsRoute > Client > Store > Actions\n ========================================================================== */\n\n/* Types */\nconst DESTROY = 'TABSROUTE::DESTROY';\n\n/* Actions */\nconst destroy = () => ({ type: DESTROY });\n\n/* Exports */\nmodule.exports = {\n types: {\n DESTROY\n },\n actions: {\n destroy\n }\n};\n","/* ==========================================================================\n TabsRoute > Client > Prototype\n ========================================================================== */\n\n/* Import modules */\nconst { Store } = require('@bluekiri/alexandria/helpers/state');\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 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: () => {\n return this.store.dispatch(actions.destroy());\n }\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 /* 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 /* Start */\n start() {\n if (!this.config.start) return this;\n\n /* Start logic */\n\n // set a class to tab-rxjs element if it is a panoramic port\n const { panoramicPorts } = this.config;\n const panoramicPortElement = panoramicPorts.map(index => this.hooks.tabRoute[index - 1]);\n const panoramicImagesArray = this.hooks.contents;\n\n panoramicPortElement.forEach(element => {\n const { parentElement } = element.parentElement;\n if (parentElement) {\n parentElement.classList.add('isPanoramicPort');\n const dataIndex = parentElement.getAttribute('data-tab');\n const selectedImage = panoramicImagesArray[dataIndex];\n selectedImage.classList.add('isPanoramicPort');\n }\n });\n return this;\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 /* Start */\n this.start();\n\n return this;\n }\n};\n\n/* Exports */\nmodule.exports = prototype;\n"],"sourceRoot":""}