{"version":3,"sources":["webpack:///./node_modules/@logitravel/alexandria-contrib-components-packages/components/main-showcase-a/client/js/store/actions.js","webpack:///./node_modules/@logitravel/alexandria-contrib-components-packages/components/main-showcase-a/client/js/config.js","webpack:///./node_modules/@logitravel/alexandria-contrib-components-packages/components/main-showcase-a/client/js/components/components.js","webpack:///./node_modules/@logitravel/alexandria-contrib-components-packages/components/main-showcase-a/client/js/store/reducer.js","webpack:///./node_modules/@logitravel/alexandria-contrib-components-packages/components/main-showcase-a/client/js/components/index.js","webpack:///./node_modules/@logitravel/alexandria-contrib-components-packages/components/main-showcase-a/client/js/index.js","webpack:///./node_modules/@logitravel/alexandria-contrib-components-packages/components/main-showcase-a/client/js/prototype.js","webpack:///./node_modules/@bluekiri/alexandria/helpers/state.js"],"names":["DESTROY","module","exports","types","actions","destroy","type","config","component","init","start","css","item","placeholder","placeholderTop","placeholderFull","sticky","searcher","searcherTabs","searcherDefault","banners","headerCarousel","searcherFlight","searcherFerry","searcherTrain","searcherFlightRxjs","searcherFerryRxjs","searcherTrainRxjs","searcherTabsRxjs","searcherPak","searcherShker","breadcrumbs","catalogue","flipCards","productCardGrid","productCardCarouselLei","productCardCarouselTTOO","gridCardTTOO","carouselList","carouselOffers","carouselOffersAub","carouselCardSimple","carouselSimple","featuresBanner","productCardTabs","destinationGuide","carouselBanner","productCardCarousel","conditions","searcherTTOO","travelSafe","productTabRxjs","productGridHE","productCarousel","productCarouselBanner","productCarouselList","configuration","getCarouselList","getProductCarousel","COMPONENTS","loader","name","resolver","initialState","reducer","state","action","initComponents","instance","selector","publicPath","components","map","element","document","querySelector","componentSelector","filter","observer","IntersectionObserver","entries","forEach","entry","intersectionRatio","target","reduce","acc","then","default","unobserve","root","rootMargin","threshold","observe","elementExist","prototype","Object","create","hooks","wrapper","container","dataset","result","JSON","parse","Store","this","store","data","dispatch","reactions","subscribe","unsubscribe","keys","key","parentNode","removeChild","subscriptions","setupStore","setupActions","setupReactions","reducers","subscribers","fn","subscriber","val","addReducers","select"],"mappings":"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","file":"main-showcase-a.e1c58cd5daa9758b54a5.bundle.js","sourcesContent":["/* ==========================================================================\n MainShowcaseA > Client > Store > Actions\n ========================================================================== */\n\n/* Types */\nconst DESTROY = 'MAINSHOWCASEA::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 MainShowcaseA > Client > Config\n ========================================================================== */\n\n/* Import modules */\n\n/* Config */\nconst config = {\n component: 'MainShowcaseA',\n init: true,\n start: true,\n css: {\n item: 'container',\n placeholder: 'placeholder',\n placeholderTop: 'placeholder--top',\n placeholderFull: 'placeholder--full',\n sticky: 'is-sticky',\n searcher: 'searcher-block',\n searcherTabs: 'searcher-block-tabs',\n searcherDefault: 'searcher--default'\n },\n type: {\n banners: 'banners',\n headerCarousel: 'headerCarousel',\n searcherFlight: 'searcherFlight',\n searcherFerry: 'searcherFerry',\n searcherTrain: 'searcherTrain',\n searcherTabs: 'searcherTabs',\n searcherFlightRxjs: 'searcherFlightRxjs',\n searcherFerryRxjs: 'searcherFerryRxjs',\n searcherTrainRxjs: 'searcherTrainRxjs',\n searcherTabsRxjs: 'searcherTabs',\n searcherPak: 'searcherPak',\n searcherShker: 'searcherShker',\n breadcrumbs: 'breadcrumbs',\n catalogue: 'catalogue',\n flipCards: 'flipCards',\n productCardGrid: 'productCardGrid',\n productCardCarouselLei: 'productLei',\n productCardCarouselTTOO: 'productTTOO',\n gridCardTTOO: 'gridCardTTOO',\n carouselList: 'carouselList',\n carouselOffers: 'carouselOffers',\n carouselOffersAub: 'carouselOffersAub',\n carouselCardSimple: 'carouselCardSimple',\n carouselSimple: 'carouselSimple',\n featuresBanner: 'featuresBanner',\n productCardTabs: 'productCardTabs',\n destinationGuide: 'destinationGuide',\n carouselBanner: 'carouselBanner',\n productCardCarousel: 'productCardCarousel',\n conditions: 'conditions',\n searcherTTOO: 'searcherTTOO',\n travelSafe: 'travelSafe',\n productTabRxjs: 'productTabHE',\n productGridHE: 'productGridHE',\n productCarousel: 'productCarouselHE',\n productCarouselBanner: 'product-carousel-he-banner',\n productCarouselList: 'productCarouselListHE'\n }\n};\n\nmodule.exports = () => config;\n","/* ==========================================================================\n MainShowcaseA > Client > Components > Components\n ========================================================================== */\n\n/* Modules */\nconst configuration = require('../config');\n\nconst getHeaderCarousel = () =>\n import(\n /* webpackChunkName: \"header-carousel-rxjs\" */\n '@bluekiri/alexandria-contrib-components/components/header-carousel-rxjs/client/js'\n );\n\nconst getBanners = () =>\n import(\n /* webpackChunkName: \"header-banner-aub\" */\n '@logitravel/alex-aubergine/components/header-banner-aub/client/js'\n );\n\nconst getCarouselOffersAub = () =>\n import(\n /* webpackChunkName: \"carousel-offers-cta\" */\n '@logitravel/alex-aubergine/components/carousel-offers-aub/client/js'\n );\n\nconst getSearcherFlight = () =>\n import(\n /* webpackChunkName: \"searcher-flight-hotel\" */\n '../../../../searcher-flight-hotel/client/js'\n );\n\nconst getSearcherFerry = () =>\n import(\n /* webpackChunkName: \"searcher-ferry-hotel\" */\n '../../../../searcher-ferry-hotel/client/js'\n );\n\nconst getSearcherTrain = () =>\n import(\n /* webpackChunkName: \"searcher-train-hotel\" */\n '../../../../searcher-train-hotel/client/js'\n );\n\nconst getSearcherShker = () =>\n import(\n /* webpackChunkName: \"searcher-shker\" */\n '../../../../searcher-shker/client/js'\n );\n\nconst getProductCardGrid = () =>\n import(\n /* webpackChunkName: \"product-cards-grid\" */\n '../../../../product-cards-grid/client/js'\n );\n\nconst getProductCardTabs = () =>\n import(\n /* webpackChunkName: \"tabs-carousel-product-card\" */\n '../../../../tabs-carousel-product-card/client/js'\n );\n\nconst getCarouselOffers = () =>\n import(\n /* webpackChunkName: \"carousel-offers-cta\" */\n '../../../../carousel-offers-cta/client/js'\n );\n\nconst getDestinationGuide = () =>\n import(\n /* webpackChunkName: \"destination-guide\" */\n '../../../../destination-guide/client/js'\n );\n\nconst getFeaturesBanner = () =>\n import(\n /* webpackChunkName: \"multi-services-pak\" */\n '../../../../multi-services-pak/client/js'\n );\n\nconst getCarouselBanner = () =>\n import(\n /* webpackChunkName: \"carousel-product-banner-pak\" */\n '../../../../carousel-product-banner-pak/client/js'\n );\n\nconst getCarouselSimple = () =>\n import(\n /* webpackChunkName: \"carousel-product-card-simple-aub\" */\n '@logitravel/alex-aubergine/components/carousel-product-card-simple-aub/client/js'\n );\n\nconst getCarouselList = () =>\n import(\n /* webpackChunkName: \"carousel-list-pak\" */\n '../../../../carousel-list-pak/client/js'\n );\n\nconst getGridCardHe = () =>\n import(\n /* webpackChunkName: \"grid-product-card-he\" */\n '@logitravel/alex-aubergine/components/grid-product-card-he/client/js'\n );\n\nconst getSearcherTTOO = () =>\n import(\n /* webpackChunkName: \"searcher-tou\" */\n '@logitravel/alex-aubergine/components/searcher-tou/client/js'\n );\n\nconst getTravelSafe = () =>\n import(\n /* webpackChunkName: \"travel-safe\" */\n '@logitravel/alex-aubergine/components/travel-safe/client/js'\n );\n\nconst getSearcherTabs = () =>\n import(\n /* webpackChunkName: \"searcher-tabs-multi\" */\n '../../../../searcher-tabs-multi-pak/client/js'\n );\n\nconst getSearcherPak = () =>\n import(\n /* webpackChunkName: \"searcher-multi\" */\n '../../../../searcher-multi-pak/client/js'\n );\n\nconst getConditions = () =>\n import(\n /* webpackChunkName: \"conditions\" */\n '@bluekiri/alexandria-contrib-components/components/text-html-rxjs/client/js'\n );\n\nconst getFlipCards = () =>\n import(\n /* webpackChunkName: \"carousel-flip-cards\" */\n '@logitravel/alex-aubergine/components/carousel-flip-cards-aub/client/js'\n );\n\nconst getSearcherFlightRxjs = () =>\n import(\n /* webpackChunkName: \"searcher-flight-hotel-rxjs\" */\n '@logitravel/alex-aubergine/components/searcher-flight-hotel-rxjs/client/js'\n );\n\nconst getSearcherFerryRxjs = () =>\n import(\n /* webpackChunkName: \"searcher-ferry-hotel-rxjs\" */\n '@logitravel/alex-aubergine/components/searcher-ferry-hotel-rxjs/client/js'\n );\n\nconst getSearcherTrainRxjs = () =>\n import(\n /* webpackChunkName: \"searcher-train-hotel-rxjs\" */\n '@logitravel/alex-aubergine/components/searcher-train-hotel-rxjs/client/js'\n );\n\nconst getSearcherTabsRxjs = () =>\n import(\n /* webpackChunkName: \"searcher-tabs-rxjs\" */\n '@logitravel/alex-aubergine/components/searcher-tabs/client/js'\n );\n\nconst getProductTabs = () =>\n import(\n /* webpackChunkName: \"product-tabs-he\" */\n '@logitravel/alex-aubergine/components/product-tabs-he/client/js'\n );\n\nconst getProductGrid = () =>\n import(\n /* webpackChunkName: \"product-tabs-he\" */\n '@logitravel/alex-aubergine/components/product-grid-he/client/js'\n );\n\nconst getProductCarousel = () =>\n import(\n /* webpackChunkName: \"carousel-product-card-he\" */\n '@logitravel/alex-aubergine/components/carousel-product-card-he/client/js'\n );\n\nconst getProductCarouselList = () =>\n import(\n /* webpackChunkName: \"product-tabs-he\" */\n '@logitravel/alex-aubergine/components/carousel-list-card-he/client/js'\n );\n\n/* Components */\nconst COMPONENTS = [\n {\n loader: getBanners,\n name: 'HeaderBannerAub',\n type: configuration().type.banners\n },\n {\n loader: getHeaderCarousel,\n name: 'HeaderCarouselRxjs',\n type: configuration().type.headerCarousel\n },\n {\n loader: getSearcherFlight,\n name: 'SearcherFlightHotel',\n type: configuration().type.searcherFlight\n },\n {\n loader: getSearcherFerry,\n name: 'SearcherFerryHotel',\n type: configuration().type.searcherFerry\n },\n {\n loader: getSearcherTrain,\n name: 'SearcherTrainHotel',\n type: configuration().type.searcherTrain\n },\n {\n loader: getSearcherTabs,\n name: 'SearcherTabsMultiPak',\n type: configuration().type.searcherTabs\n },\n {\n loader: getSearcherPak,\n name: 'SearcherMultiPak',\n type: configuration().type.searcherPak\n },\n {\n loader: getSearcherShker,\n name: 'SearcherShker',\n type: configuration().type.searcherShker\n },\n {\n loader: getProductCardGrid,\n name: 'ProductCardsGrid',\n type: configuration().type.productCardGrid\n },\n {\n loader: getProductCardTabs,\n name: 'TabsCarouselProductCard',\n type: configuration().type.productCardTabs\n },\n {\n loader: getCarouselOffers,\n name: 'CarouselOffersCta',\n type: configuration().type.carouselOffers\n },\n {\n loader: getCarouselOffersAub,\n name: 'CarouselOffersAub',\n type: configuration().type.carouselOffersAub\n },\n {\n loader: getDestinationGuide,\n name: 'DestinationGuide',\n type: configuration().type.destinationGuide\n },\n {\n loader: getFeaturesBanner,\n name: 'MultiServicesPak',\n type: configuration().type.featuresBanner\n },\n {\n loader: getCarouselBanner,\n name: 'CarouselProductBannerPak',\n type: configuration().type.carouselBanner\n },\n {\n loader: getCarouselList,\n name: 'CarouselListPak',\n type: configuration().type.carouselList\n },\n {\n loader: getCarouselSimple,\n name: 'CarouselProductCardSimpleAub',\n type: configuration().type.carouselSimple\n },\n {\n loader: getCarouselList,\n name: 'CarouselListPak',\n type: configuration().type.catalogue\n },\n {\n loader: getProductCarousel,\n name: 'CarouselProductCardHe',\n type: configuration().type.productCardCarouselLei\n },\n {\n loader: getProductCarousel,\n name: 'CarouselProductCardHe',\n type: configuration().type.productCardCarouselTTOO\n },\n {\n loader: getGridCardHe,\n name: 'GridProductCardHe',\n type: configuration().type.gridCardTTOO\n },\n {\n loader: getConditions,\n name: 'TextHtmlRxjs',\n type: configuration().type.conditions\n },\n {\n loader: getFlipCards,\n name: 'CarouselFlipCardsAub',\n type: configuration().type.flipCards\n },\n {\n loader: getSearcherTTOO,\n name: 'SearcherTou',\n type: configuration().type.searcherTTOO\n },\n {\n loader: getTravelSafe,\n name: 'TravelSafe',\n type: configuration().type.travelSafe\n },\n {\n loader: getSearcherFlightRxjs,\n name: 'SearcherFlightHotelRxjs',\n type: configuration().type.searcherFlightRxjs\n },\n {\n loader: getSearcherFerryRxjs,\n name: 'SearcherFerryHotelRxjs',\n type: configuration().type.searcherFerryRxjs\n },\n {\n loader: getSearcherTrainRxjs,\n name: 'SearcherTrainHotelRxjs',\n type: configuration().type.searcherTrainRxjs\n },\n {\n loader: getSearcherTabsRxjs,\n name: 'SearcherTabs',\n type: configuration().type.searcherTabsRxjs\n },\n {\n loader: getProductTabs,\n name: 'ProductTabsHe',\n type: configuration().type.productTabRxjs\n },\n {\n loader: getProductGrid,\n name: 'ProductGridHe',\n type: configuration().type.productGridHE\n },\n {\n loader: getProductCarousel,\n name: 'CarouselProductCardHe',\n type: configuration().type.productCarousel\n },\n {\n loader: getProductCarousel,\n name: 'CarouselProductCardHe',\n type: configuration().type.productCarouselBanner\n },\n {\n loader: getProductCarouselList,\n name: 'CarouselListCardHe',\n type: configuration().type.productCarouselList\n }\n];\n\n/* Resolver */\nconst resolver = () => COMPONENTS;\n\n/* Exports */\nmodule.exports = {\n resolver\n};\n","/* ==========================================================================\n MainShowcaseA > 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 MainShowcaseA > Client > Components\n ========================================================================== */\n\n/* Modules */\nrequire('intersection-observer');\n\nconst { resolver } = require('./components');\n\n/* Init */\nfunction initComponents(instance) {\n /* Data */\n const { selector } = instance;\n const { publicPath } = instance.config;\n\n /**\n * Setting exposed public path\n */\n if (publicPath) {\n /* eslint-disable */\n __webpack_public_path__ = config.publicPath;\n /* eslint-enable */\n }\n\n const components = resolver()\n .map(component => {\n const type = component.type ? `[data-type='${component.type}']` : '';\n\n return {\n loader: component.loader,\n element: document.querySelector(`[data-component='${component.name}']${type}`),\n componentSelector: `[data-component='${component.name}']${type}`\n };\n })\n .filter(component => component.element);\n\n /* Observer Config */\n const observerConfig = {\n root: null, // avoiding 'root' or setting it to 'null' sets it to default value: viewport\n rootMargin: '0px',\n threshold: 0.05\n };\n\n /**\n * Observer to lazy load modules based on\n * currently viewed components in the viewport\n */\n const observer = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n if (entry.intersectionRatio > 0) {\n const { loader, componentSelector } = components\n .filter(component => component.element === entry.target)\n .reduce(acc => acc);\n\n /**\n * Init component with its loader and then\n * unobserve from this entry so we dont\n * call the init of the component more\n * than once\n */\n loader().then(module => {\n module.default(`${selector} ${componentSelector}`);\n\n observer.unobserve(entry.target);\n });\n }\n });\n }, observerConfig);\n\n components.forEach(component => {\n observer.observe(component.element);\n });\n}\n\n/* Exports */\nmodule.exports = {\n initComponents\n};\n","/* ==========================================================================\n MainShowcaseA > 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 * MainShowcaseA component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function MainShowcaseA(selector = '[data-component=MainShowcaseA]', 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 instance.hooks = {\n wrapper: instance.element.querySelector('[data-searcher-wrapper]'),\n container: instance.element.querySelector('[data-searcher-container]')\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 MainShowcaseA > 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 { initComponents } = require('./components');\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 /* 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 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 /* Components */\n initComponents(this);\n\n /* Start */\n this.start();\n\n return this;\n }\n};\n\n/* Exports */\nmodule.exports = prototype;\n","/* ==========================================================================\n Helpers > State\n ========================================================================== */\n\n/* Store Constructor */\nfunction Store(reducers = {}, initialState = {}) {\n this.subscribers = [];\n this.reducers = reducers;\n this.state = this.reduce(initialState, {});\n}\n\n/* Subscribe */\nStore.prototype.subscribe = function subscribe(fn) {\n this.subscribers = [...this.subscribers, fn];\n /* Return the state passed to the subscriber on the first subscription */\n fn(this.state, {});\n return {\n unsubscribe: () => {\n this.subscribers = this.subscribers.filter(subscriber => subscriber !== fn);\n }\n };\n};\n\n/* Dispatch */\nStore.prototype.dispatch = function dispatch(action) {\n this.state = this.reduce(this.state, action);\n this.subscribers.forEach(subscriber => subscriber(this.state, action));\n};\n\n/* Reduce */\nStore.prototype.reduce = function reduce(state, action) {\n const newState = Object.keys(this.reducers)\n .map(key => ({ [key]: this.reducers[key](state[key], action) }))\n .reduce((acc, val) => ({ ...acc, ...val }));\n\n return newState;\n};\n\n/* Add reducers */\nStore.prototype.addReducers = function addReducers(reducers = {}) {\n this.reducers = {\n ...this.reducers,\n ...reducers\n };\n};\n\n/* Select */\nStore.prototype.select = function select(key = '') {\n return this.state[key];\n};\n\n/* Exports */\nmodule.exports = {\n Store\n};\n"],"sourceRoot":""}