{"version":3,"sources":["webpack:///./node_modules/@bluekiri/alexandria/helpers/domHelpers.js","webpack:///./components/layout-logitravel-home/client/js/index.js","webpack:///./components/layout-logitravel-home/client/js/components.js"],"names":["module","exports","elementExist","element","document","querySelector","toNode","html","DOMParser","parseFromString","body","childNodes","require","_require2","resolveComponents","getCookies","getTopButton","getHeader","selector","arguments","length","undefined","config","_objectSpread","dataset","result","JSON","parse","__webpack_public_path__","publicPath","components","filter","component","name","map","loader","concat","observer","IntersectionObserver","entries","forEach","entry","intersectionRatio","_components$filter$re","target","reduce","acc","then","unobserve","mod","default","swiper","slidesPerView","centeredSlides","watchSlidesVisibility","watchSlidesProgress","spaceBetween","speed","effect","fadeEffect","crossFade","loop","preventInteractionOnTransition","autoplay","delay","disableOnInteraction","root","rootMargin","threshold","observe","COMPONENTS"],"mappings":"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","file":"index.bundle.js","sourcesContent":["/* ==========================================================================\n Dom helpers\n ========================================================================== */\n\nconst elementExist = element => !!document.querySelector(element);\n\nconst toNode = html => new DOMParser().parseFromString(html, 'text/html').body.childNodes;\n\nmodule.exports = {\n elementExist,\n toNode\n};\n","/* ==========================================================================\n LayoutLogitravelHome > Client\n ========================================================================== */\n\n/* Modules */\nrequire('intersection-observer');\n\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\n\nconst { resolveComponents, getCookies, getTopButton, getHeader } = require('./components');\n\n(function LayoutLogitravelHome(selector = '[data-component=\"LayoutLogitravelHome\"]') {\n if (elementExist(selector)) {\n const element = document.querySelector(selector);\n\n const config = {\n ...(function getConfig() {\n if (!element.dataset.config) return '';\n\n const result = JSON.parse(element.dataset.config);\n element.dataset.config = '';\n return result;\n })()\n };\n\n /**\n * Setting public path to the webpack exposed variable\n */\n /* eslint-disable */\n __webpack_public_path__ = config.publicPath;\n /* eslint-enable */\n\n const components = resolveComponents()\n .filter(component => component.name !== 'Header')\n .map(component => ({\n loader: component.loader,\n element: document.querySelector(`[data-component=\"${component.name}\"]`),\n name: component.name\n }))\n .filter(component => component.element);\n\n /**\n * Observer to lazy load modules based on\n * currently viewed components in the viewport\n */\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.intersectionRatio > 0) {\n const { loader, name } = 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 observer.unobserve(entry.target);\n\n const mod = module.default;\n\n if (!(typeof mod === 'function')) {\n return;\n }\n\n if (name === 'HeaderCarouselRxjs') {\n mod(`[data-component='HeaderCarouselRxjs']`, {\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 slidesPerView: 1,\n centeredSlides: true,\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n spaceBetween: 0,\n speed: 200,\n effect: 'fade',\n fadeEffect: {\n crossFade: true\n },\n loop: false,\n preventInteractionOnTransition: true,\n autoplay: {\n delay: 7000,\n disableOnInteraction: false\n }\n }\n });\n\n return;\n }\n\n /* Execute module */\n mod();\n });\n }\n });\n },\n {\n root: null, // avoiding 'root' or setting it to 'null' sets it to default value: viewport\n rootMargin: '0px',\n threshold: 0.15\n }\n );\n\n components.forEach(component => {\n observer.observe(component.element);\n });\n\n /* Cookies */\n getCookies().then(module => module.default());\n\n /* TopButton */\n getTopButton().then(module => module.default());\n\n /* Header Logitravel INIT */\n getHeader().then(module => module.default);\n }\n})();\n","/* ==========================================================================\n MLayoutLogitravelHome > Client > Components\n ========================================================================== */\n\n/**\n * HeaderCarousel\n */\nconst getHeaderCarousel = () => {\n return import(\n /* webpackChunkName: \"header-carousel\" */\n '@bluekiri/alexandria-contrib-components/components/header-carousel/client/js'\n );\n};\n\n/**\n * HeaderCarouselRxjs\n */\nconst getHeaderCarouselRxjs = () => {\n return import(\n /* webpackChunkName: \"header-carousel-rxjs\" */\n '@bluekiri/alexandria-contrib-components/components/header-carousel-rxjs/client/js'\n );\n};\n\n/**\n * Header\n */\nconst getHeader = () => {\n return import(\n /* webpackChunkName: \"header\" */\n '@bluekiri/alexandria-logitravel/components/header/client/js'\n );\n};\n\n/**\n * Footer\n */\nconst getFooter = () => {\n return import(\n /* webpackChunkName: \"footer\" */\n '@bluekiri/alexandria-logitravel/components/footer/client/js'\n );\n};\n\n/**\n * Cookies\n */\nconst getCookies = () => {\n return import(\n /* webpackChunkName: \"cookies\" */\n '@bluekiri/alexandria-contrib-components/components/cookies/client/js'\n );\n};\n\n/**\n * TopButton\n */\nconst getTopButton = () => {\n return import(\n /* webpackChunkName: \"cookies\" */\n '@bluekiri/alexandria-contrib-components/components/top-button/client/js'\n );\n};\n\n/**\n * Searcher\n */\nconst getSearcher = () => {\n return import(\n /* webpackChunkName: \"multisearcher\" */\n '@logitravel/alex-comp-mar/components/multisearcher/client/js'\n );\n};\n\n/**\n * ListCardSimpleHover\n */\nconst getListCardSimpleHover = () => {\n return import(\n /* webpackChunkName: \"list-card-simple-hover\" */\n '@logitravel/alex-comp-mar/components/list-card-simple-hover/client/js'\n );\n};\n\n/**\n * Campaign\n */\nconst getCampaigns = () => {\n return import(\n /* webpackChunkName: \"campaigns\" */\n '@logitravel/alex-comp-mar/components/tabs-banner-product-card-carousel/client/js'\n );\n};\n\n/**\n * MapCoasts\n */\nconst getMapCoasts = () => {\n return import(\n /* webpackChunkName: \"map-coasts\" */\n '@logitravel/alex-comp-mar/components/map-coasts/client/js'\n );\n};\n\n/**\n * LastNews\n */\nconst getLastNews = () => {\n return import(\n /* webpackChunkName: \"last-news\" */\n '@logitravel/alex-comp-mar/components/last-news/client/js'\n );\n};\n\n/**\n * ProductsBanner\n */\nconst getProductsBanner = () => {\n return import(\n /* webpackChunkName: \"products-banner\" */\n '@logitravel/alex-comp-mar/components/products-banner/client/js'\n );\n};\n\n/**\n * BannerButtonWidth\n */\nconst getBannerButtonWidth = () => {\n return import(\n /* webpackChunkName: \"banner-button-width\" */\n '@logitravel/alex-comp-mar/components/banner-button-width/client/js'\n );\n};\n\n/**\n * DealsCarousel\n */\nconst getDeals = () => {\n return import(\n /* webpackChunkName: \"deals\" */\n '@logitravel/alex-comp-mar/components/deals-carousel/client/js'\n );\n};\n\n/**\n * Comarketing\n */\nconst getComarketing = () => {\n return import(\n /* webpackChunkName: \"deals-carousel\" */\n '@logitravel/alex-comp-mar/components/comarketing/client/js'\n );\n};\n\n/**\n * Destinations\n */\nconst getDestinations = () => {\n return import(\n /* webpackChunkName: \"masonry-carousel\" */\n '@bluekiri/alexandria-contrib-components/components/masonry-carousel/client/js'\n );\n};\n\n/**\n * BlogFeed\n */\nconst getBlog = () => {\n return import(\n /* webpackChunkName: \"blog\" */\n '@logitravel/alex-comp-mar/components/blog-feed/client/js'\n );\n};\n\n/**\n * NewsletterSubscription\n */\nconst getNewsletter = () => {\n return import(\n /* webpackChunkName: \"newsletter\" */\n '@logitravel/alex-comp-mar/components/newsletter-subscription/client/js'\n );\n};\n\n/**\n * BannerRestrictionsAub\n */\nconst getBannerRestrictionsAub = () => {\n return import(\n /* webpackChunkName: \"banner-restrictions-aub\" */\n '@logitravel/alex-aubergine/components/banner-restrictions-aub/client/js'\n );\n};\n\n/**\n * CollapseLinksProducts\n */\nconst getCollapseLinksProducts = () => {\n return import(\n /* webpackChunkName: \"collapse-links-products\" */\n '@logitravel/alex-comp-mar/components/collapse-links-products/client/js'\n );\n};\n\n/**\n * Truspilot\n */\nconst getTrustpilot = () => {\n return import(\n /* webpackChunkName: \"trustpilot\" */\n '@bluekiri/alexandria-contrib-components/components/trustpilot/client/js'\n );\n};\n\n/**\n * Components\n */\nconst COMPONENTS = [\n {\n loader: getHeader,\n name: 'Header'\n },\n {\n loader: getFooter,\n name: 'Footer'\n },\n {\n loader: getHeaderCarousel,\n name: 'HeaderCarousel'\n },\n {\n loader: getHeaderCarouselRxjs,\n name: 'HeaderCarouselRxjs'\n },\n {\n loader: getSearcher,\n name: 'Multisearcher'\n },\n {\n loader: getListCardSimpleHover,\n name: 'ListCardSimpleHover'\n },\n {\n loader: getMapCoasts,\n name: 'MapCoasts'\n },\n {\n loader: getBannerButtonWidth,\n name: 'BannerButtonWidth'\n },\n {\n loader: getCampaigns,\n name: 'TabsBannerProductCardCarousel'\n },\n {\n loader: getDeals,\n name: 'DealsCarousel'\n },\n {\n loader: getComarketing,\n name: 'Comarketing'\n },\n {\n loader: getDestinations,\n name: 'MasonryCarousel'\n },\n {\n loader: getCollapseLinksProducts,\n name: 'CollapseLinksProducts'\n },\n {\n loader: getNewsletter,\n name: 'NewsletterSubscription'\n },\n {\n loader: getBlog,\n name: 'BlogFeed'\n },\n {\n loader: getTrustpilot,\n name: 'Trustpilot'\n },\n {\n loader: getLastNews,\n name: 'LastNews'\n },\n {\n loader: getProductsBanner,\n name: 'ProductsBanner'\n },\n {\n loader: getBannerRestrictionsAub,\n name: 'BannerRestrictionsAub'\n }\n];\n\n/**\n * Resolver components\n */\nfunction resolveComponents() {\n return COMPONENTS;\n}\n\n/* Exports */\nmodule.exports = {\n getCookies,\n getTopButton,\n getHeader,\n resolveComponents\n};\n"],"sourceRoot":""}