{"version":3,"sources":["webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/tabs-rxjs/templates/content.js","webpack:///./node_modules/@logitravel/alex-aubergine/components/searcher-tabs/template.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/tabs-rxjs/templates/horizontal.js","webpack:///./node_modules/@logitravel/alex-aubergine/components/searcher-tabs/client/js/store/reducer.js","webpack:///./node_modules/@logitravel/alex-aubergine/components/searcher-tabs/components/render.js","webpack:///./node_modules/@logitravel/alex-aubergine/components/searcher-tabs/components/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/tabs-rxjs/templates/vertical.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/tabs-rxjs/templates/tab.js","webpack:///./node_modules/@logitravel/alex-aubergine/components/searcher-tabs/client/js/store/actions.js","webpack:///./node_modules/@logitravel/comp-dsk-melia/components/searcher-mel/client/js/searcher-dsk/index.js","webpack:///./node_modules/@logitravel/alex-aubergine/components/searcher-tabs/client/js/tabs/modules.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/tabs-rxjs/template.js","webpack:///./node_modules/@logitravel/alex-aubergine/components/searcher-tabs/client/js/prototype.js","webpack:///./node_modules/@logitravel/alex-aubergine/components/searcher-tabs/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/carousel-rxjs/template.js"],"names":["html","configuration","module","exports","data","items","map","item","index","content","css","active","join","trim","renderContainers","addData","addStyle","prepareDataConfig","randomId","sanitizeObject","TabsTemplate","resolver","renderContent","searcherType","context","config","showTabs","length","searcher","id","type","tabs","renderTabs","dataSearcher","styles","dataType","dataTypAttr","dataConfig","souldRenderTabs","dataConfigAttr","JSON","stringify","component","CarouselTemplate","ContentTemplate","TabTemplate","navigation","renderNavigation","types","initialState","idTabs","tabActived","reducer","state","action","DESTROY","SET_DATA","payload","includes","tab","SearcherFlightHotelRxjs","SearcherFerryHotelRxjs","SearcherTrainHotelRxjs","SearcherLeiRxjs","SearcherTou","SearcherCir","TYPES","RENDERS","FLI_HOT","FER_HOT","TRA_HOT","TOU","LEI","CIR","ViewHelpers","Image","icon","link","title","disabled","image","renderIcon","src","renderImage","renderText","actions","destroy","setData","toNode","SearcherClient","SearcherTemplate","addModalWait","getDataSingleSearcher","initSearcher","instance","inst","selector","hasSearcherMob","store","select","openMSearcher","element","classList","remove","loaded","searcherDsk","swiper","slidesPerView","breakpoints","1590","1200","992","768","callbackRedirect","setTimeout","window","location","href","hasSearcherDsk","addSearcher","getDataSearcher","node","hooks","searcherContainer","appendChild","initTabs","async","default","init","VerticalTemplate","HorizontalTemplate","ORIENTATIONS","horizontal","vertical","hasImages","literals","verticalClass","toLowerCase","tabsRedirect","ind","redirect","filter","Store","startSearcher","prototype","this","dispatch","reactions","subscribe","unsubscribe","Object","keys","forEach","key","parentNode","removeChild","subscriptions","start","itemsConfig","searcherID","setupStore","setupActions","setupReactions","elementExist","create","document","querySelector","dataset","result","parse","hasPagination","hasNavigation","hasAutoplay","hasBreakpoints","prev","next"],"mappings":"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","file":"searcher-dsk.236bec490cd18c99a808.bundle.js","sourcesContent":["/* ==========================================================================\n TabsRxjs > Templates > Content\n ========================================================================== */\n\n/* Import modules */\nconst { html } = require('common-tags');\n\nconst configuration = require('../client/js/config');\n\n/* Render containers */\nconst renderContainers = items =>\n html(\n items.map((item, index) => {\n const { content = '' } = item;\n\n return html(`\n
\n ${content}\n
\n `);\n })\n );\n\n/**\n * Content template\n * @param {object} data Object containing the data model for this component.\n * @param {object} context The general context object.\n * @returns {object} Additional data to have available in the template\n */\nmodule.exports = function Template(data) {\n /* Data */\n const { items } = data;\n\n /* Template */\n return html(`\n
\n ${renderContainers(items)}\n
\n `);\n};\n","/* ==========================================================================\n SearcherTabs > Template\n ========================================================================== */\n\n/* Import modules */\nconst { html } = require('common-tags');\nconst { addData, addStyle, prepareDataConfig, randomId } = require('@bluekiri/alexandria/helpers/dataHelpers');\nconst { sanitizeObject } = require('@bluekiri/alexandria-contrib-components/helpers/sanitize');\n\nconst TabsTemplate = require('@bluekiri/alexandria-contrib-components/components/tabs-rxjs/template');\n\nconst { resolver } = require('./components');\n\nconst configuration = require('./client/js/config');\n\n/* Render tabs */\nconst renderTabs = (items, searcherType, context) => {\n if (!items) return '';\n\n return TabsTemplate(\n addStyle(\n addData(\n {\n items: items.map(item => {\n const { searcher = false, id } = item;\n\n return {\n ...item,\n content: searcher\n ? resolver({ data: addData(searcher, { type: searcherType }), id }, context)\n : ''\n };\n })\n },\n {\n type: configuration().type.tabs\n }\n ),\n [configuration().css.tabs]\n ),\n context\n );\n};\n\nconst renderContent = (data, searcherType, context) => {\n const { items = [], config = {} } = data;\n const { showTabs } = config;\n\n if (!items.length) return '';\n\n const souldRenderTabs = showTabs || items.length > 1;\n\n /* Render tabs */\n if (souldRenderTabs) return renderTabs(items, searcherType, context);\n\n const { searcher = false, id } = items[0] || {};\n\n if (!searcher || !id) return '';\n\n /* Render only a searcher */\n const dataSearcher = addData(searcher, { type: searcherType });\n return resolver({ data: dataSearcher, id }, context);\n};\n\n/**\n * SearcherTabs template\n * @param {object} data Object containing the data model for this component.\n * @param {object} context The general context object.\n * @returns {object} Additional data to have available in the template\n */\nmodule.exports = function Template(data, context) {\n /* Data */\n const { config = {}, items = [] } = data;\n const { styles = [], showTabs } = config;\n\n /* Config data */\n const { dataType } = prepareDataConfig(config.data);\n const dataTypAttr = dataType ? html(`data-type=\"${dataType}\"`) : html('');\n const searcherType = randomId(randomId(configuration().type.searcher));\n\n const dataConfig = sanitizeObject({\n ...config,\n context,\n souldRenderTabs: showTabs || items.length > 1,\n items,\n searcherType\n });\n\n const dataConfigAttr = `data-config='${JSON.stringify({ ...dataConfig })}'`;\n\n /* Template */\n return html(`\n
\n ${renderContent(data, searcherType, context)}\n
\n `);\n};\n","/* ==========================================================================\n TabsRxjs > Templates > Horizontal\n ========================================================================== */\n\n/* Import modules */\nconst { html } = require('common-tags');\n\nconst { addData, addStyle } = require('@bluekiri/alexandria/helpers/dataHelpers');\n\nconst CarouselTemplate = require('../../carousel-rxjs/template');\n\nconst ContentTemplate = require('./content');\nconst TabTemplate = require('./tab');\n\nconst configuration = require('../client/js/config');\n\n/* Render navigation */\nconst renderNavigation = (data, context) => {\n /* Data */\n const { items } = data;\n\n return html(`\n
\n ${CarouselTemplate(\n addStyle(\n addData(\n {\n items: items.map((item, index) => TabTemplate(item, index, context))\n },\n { type: configuration().type.navigation }\n ),\n [configuration().css.navigation]\n ),\n context\n )}\n
\n `);\n};\n\n/**\n * TabsRxjs template\n * @param {object} data Object containing the data model for this component.\n * @param {object} context The general context object.\n * @returns {object} Additional data to have available in the template\n */\nmodule.exports = function Template(data, context) {\n /* Template */\n return html(`\n ${renderNavigation(data, context)}\n ${ContentTemplate(data)}\n `);\n};\n","/* ==========================================================================\n SearcherTabs > Client > Store > Reducer\n ========================================================================== */\n\n/* Modules */\nconst { types } = require('./actions');\n\n/* Initial state */\nconst initialState = {\n type: null,\n idTabs: 0,\n tabActived: [0]\n};\n\n/* Reducer */\nfunction reducer(state = initialState, action) {\n switch (action.type) {\n case types.DESTROY:\n return state;\n case types.SET_DATA:\n return {\n ...state,\n type: action.payload.type || state.type,\n idTabs: action.payload.idTabs || state.idTabs,\n tabActived:\n 'tab' in action.payload && !state.tabActived.includes(action.payload.tab)\n ? [...state.tabActived, action.payload.tab]\n : state.tabActived\n };\n default:\n return state;\n }\n}\n\n/* Exports */\nmodule.exports = {\n reducer\n};\n","/* ==========================================================================\n SearcherTabs > Components > render\n ========================================================================== */\n\n/* Modules */\nconst SearcherFlightHotelRxjs = require('../../searcher-flight-hotel-rxjs/template');\nconst SearcherFerryHotelRxjs = require('../../searcher-ferry-hotel-rxjs/template');\nconst SearcherTrainHotelRxjs = require('../../searcher-train-hotel-rxjs/template');\nconst SearcherLeiRxjs = require('../../searcher-lei-rxjs/template');\nconst SearcherTou = require('../../searcher-tou/template');\nconst SearcherCir = require('../../searcher-cir/template');\n\nconst { TYPES } = require('../constants');\n\n/* Renders */\nconst RENDERS = {\n [TYPES.FLI_HOT]: SearcherFlightHotelRxjs,\n [TYPES.FER_HOT]: SearcherFerryHotelRxjs,\n [TYPES.TRA_HOT]: SearcherTrainHotelRxjs,\n [TYPES.TOU]: SearcherTou,\n [TYPES.LEI]: SearcherLeiRxjs,\n [TYPES.CIR]: SearcherCir\n};\n\n/* Exports */\nmodule.exports = {\n RENDERS\n};\n","/* ==========================================================================\n SearcherTabs > Components\n ========================================================================== */\n\n/* Modules */\nconst { html } = require('common-tags');\n\nconst { RENDERS } = require('./render');\n\n/* Resolver */\nconst resolver = ({ data, id }, context) => {\n /* return Exit */\n if (!data) return html('');\n\n const template = RENDERS[id];\n if (!template) return '';\n\n return RENDERS[id](data, context);\n};\n\n/* Exports */\nmodule.exports = {\n resolver\n};\n","/* ==========================================================================\n TabsRxjs > Templates > Vertical\n ========================================================================== */\n\n/* Import modules */\nconst { html } = require('common-tags');\n\nconst ContentTemplate = require('./content');\nconst TabTemplate = require('./tab');\n\n/* Render navigation */\nconst renderNavigation = (data, context) => {\n /* Data */\n const { items } = data;\n\n return html(`\n
\n ${items.map((item, index) => TabTemplate(item, index, context)).join('')}\n
\n `);\n};\n\n/**\n * TabsRxjs template\n * @param {object} data Object containing the data model for this component.\n * @param {object} context The general context object.\n * @returns {object} Additional data to have available in the template\n */\nmodule.exports = function Template(data, context) {\n /* Template */\n return html(`\n ${renderNavigation(data, context)}\n ${ContentTemplate(data)}\n `);\n};\n","/* ==========================================================================\n TabsRxjs > Templates > Tab\n ========================================================================== */\n\n/* Import modules */\nconst { html } = require('common-tags');\n\nconst ViewHelpers = require('@bluekiri/alexandria/core/ViewHelpers');\n\nconst { addData } = require('@bluekiri/alexandria/helpers/dataHelpers');\n\nconst Image = require('../../image-rxjs/template');\n\nconst configuration = require('../client/js/config');\n\n/* Render icon */\nconst renderIcon = (icon, context) => {\n if (!icon) {\n return '';\n }\n\n return html(`\n ${ViewHelpers(context).icon(icon)}\n `);\n};\n\n/* Render text */\nconst renderText = (link, title) => {\n if (!link) {\n return html(`${title}`);\n }\n\n return html(`\n \n ${title}\n \n `);\n};\n\n/* Render image */\nconst renderImage = (image, index, context) => {\n if (!image) {\n return html('');\n }\n\n return Image(\n addData(\n {\n src: image\n },\n {\n type: `${configuration().type.image}-${index}`\n }\n ),\n context\n );\n};\n\n/**\n * Tab template\n * @param {object} data Object containing the data model for this component.\n * @param {object} context The general context object.\n * @returns {object} Additional data to have available in the template\n */\nmodule.exports = function Template(data, index, context) {\n /* Data */\n const { icon = false, link = false, title = '', disabled = false, image = false } = data;\n\n /* Template */\n return html(`\n
\n ${renderIcon(icon, context)}\n ${renderImage(image, index, context)}\n ${renderText(link, title)}\n
\n `);\n};\n","/* ==========================================================================\n SearcherTabs > Client > Store > Actions\n ========================================================================== */\n\n/* Types */\nconst DESTROY = 'SEARCHER::DESTROY';\nconst SET_DATA = 'SEARCHER::SET_DATA';\n\n/* Actions */\nconst destroy = () => ({ type: DESTROY });\nconst setData = payload => ({ type: SET_DATA, payload });\n\n/* Exports */\nmodule.exports = {\n types: {\n DESTROY,\n SET_DATA\n },\n actions: {\n destroy,\n setData\n }\n};\n","/* ==========================================================================\n SearcherMel > Client > Searcher-dsk\n ========================================================================== */\n\n/* Modules */\n\nconst { toNode } = require('@bluekiri/alexandria/helpers/domHelpers');\nconst { addData, addStyle } = require('@bluekiri/alexandria/helpers/dataHelpers');\n\nconst SearcherClient = require('@logitravel/alex-aubergine/components/searcher-tabs/client/js');\nconst SearcherTemplate = require('@logitravel/alex-aubergine/components/searcher-tabs/template');\nconst { addModalWait } = require('../modal-wait/modules');\n\nconst configuration = require('../config');\nconst { getDataSingleSearcher } = require('../helpers');\n\nconst { type: dataType } = configuration();\n\nfunction initSearcher(instance) {\n const inst = instance;\n const { selector } = instance;\n\n const { hasSearcherMob } = inst.store.select('data');\n\n /* Hide mobile searcher */\n if (hasSearcherMob) instance.openMSearcher.element.classList.remove(configuration().css.loaded);\n\n inst.searcherDsk = SearcherClient(\n `${selector} [data-component=\"SearcherTabs\"][data-type=\"${dataType.searcherDsk}\"]`,\n {\n swiper: {\n slidesPerView: 'auto',\n breakpoints: {\n 1590: { slidesPerView: 'auto' },\n 1200: { slidesPerView: 'auto' },\n 992: { slidesPerView: 'auto' },\n 768: { slidesPerView: 'auto' }\n }\n },\n callbackRedirect: ({ link }) => {\n addModalWait(instance);\n setTimeout(() => {\n window.location.href = link;\n }, 2000);\n }\n }\n );\n\n if (!inst.searcherDsk) return;\n\n inst.actions.setData({ hasSearcherDsk: true });\n}\n\nfunction getDataSearcher(instance) {\n const { config = {} } = instance;\n const { items = [] } = config;\n\n /* Data */\n return addStyle(\n addData(\n {\n config,\n items: !items.length ? getDataSingleSearcher(instance) : items\n },\n { type: dataType.searcherDsk }\n ),\n [configuration().css.loaded]\n );\n}\n\nfunction addSearcher(instance) {\n const { config = {} } = instance;\n const { context = {} } = config;\n\n if (instance.searcherDsk) return;\n\n const dataSearcher = getDataSearcher(instance);\n\n const node = toNode(SearcherTemplate(dataSearcher, context))[0];\n\n instance.hooks.searcherContainer.appendChild(node);\n\n initSearcher(instance);\n}\n\nmodule.exports = {\n initSearcher,\n addSearcher\n};\n","// ==========================================================================\n// searchesr-tabs > Client > tabs > Modules\n// ==========================================================================\n\nconst loader = () =>\n import(\n /* webpackChunkName: \"tabs\" */\n './index'\n );\n\nmodule.exports = {\n initTabs: async instance => {\n const {\n default: { initTabs: init }\n } = await loader();\n\n init(instance);\n }\n};\n","/* ==========================================================================\n TabsRxjs > Template\n ========================================================================== */\n\n/* Import modules */\nconst { html } = require('common-tags');\n\nconst { prepareDataConfig } = require('@bluekiri/alexandria/helpers/dataHelpers');\n\nconst VerticalTemplate = require('./templates/vertical');\nconst HorizontalTemplate = require('./templates/horizontal');\n\nconst configuration = require('./client/js/config');\n\nconst ORIENTATIONS = {\n horizontal: HorizontalTemplate,\n vertical: VerticalTemplate\n};\n\n/**\n * TabsRxjs template\n * @param {object} data Object containing the data model for this component.\n * @param {object} context The general context object.\n * @returns {object} Additional data to have available in the template\n */\nmodule.exports = function Template(data, context) {\n /* Data */\n const { config = {}, type = 'horizontal', hasImages = false, items } = data;\n const { styles = [], literals = {} } = config;\n const { dataType } = prepareDataConfig(config.data);\n\n const verticalClass = type.toLowerCase() === 'vertical' ? configuration().css.vertical : '';\n\n /* [], index of items with link and redirect: true */\n const tabsRedirect = items.map((tab, ind) => (tab.redirect && tab.link ? ind : false)).filter(tab => tab !== false);\n\n /* Template */\n return html(`\n
\n ${ORIENTATIONS[type.toLowerCase()](data, context)}\n
\n `);\n};\n","/* ==========================================================================\n SearcherTabs > 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\nconst { startSearcher } = require('./searchers');\nconst { initTabs } = require('./tabs/modules');\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 setData: payload => this.store.dispatch(actions.setData(payload))\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 const { config = {} } = this;\n const { items: itemsConfig = [] } = config;\n\n if (!itemsConfig.length) return this;\n\n /* Get ID(type searcher, flight, train, ferry...) */\n const { id: searcherID } = itemsConfig[0];\n\n /* Sync store */\n this.actions.setData({ type: searcherID });\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 this.start();\n\n if (!this.config.items) return this;\n\n /* Tabs or init searcher */\n if (this.config.souldRenderTabs) initTabs(this);\n else startSearcher(this);\n\n return this;\n }\n};\n\n/* Exports */\nmodule.exports = prototype;\n","/* ==========================================================================\n SearcherTabs > 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 * SearcherTabs component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function SearcherTabs(selector = '[data-component=SearcherTabs]', 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\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 CarouselRxjs > Template\n ========================================================================== */\n\n/* Import modules */\nconst { html } = require('common-tags');\n\nconst { prepareDataConfig } = require('@bluekiri/alexandria/helpers/dataHelpers');\nconst ViewHelpers = require('@bluekiri/alexandria/core/ViewHelpers');\n\nconst configuration = require('./client/js/config');\n\n/* Render navigation */\nconst renderNavigation = (navigation, context) => {\n /* View helpers */\n const { icon } = ViewHelpers(context);\n\n return html(`\n \n \n `);\n};\n\n/* Render pagination */\nconst renderPagination = () =>\n html(`\n \n `);\n\n/* Exports */\nmodule.exports = function Template(data = {}, context) {\n /* Config */\n const {\n config = {},\n items = [],\n hasPagination = false,\n hasNavigation = true,\n hasAutoplay = false,\n hasBreakpoints = false\n } = data;\n const { dataType } = prepareDataConfig(config.data);\n\n const styles = config.styles || [];\n\n /* Navigation */\n const navigation = {\n ...configuration().navigation,\n ...config.navigation\n };\n\n /* Template */\n return html(`\n
\n\n \n\n
\n `);\n};\n"],"sourceRoot":""}