{"version":3,"sources":["webpack:///./node_modules/@logitravel/alex-comp-cru/components/main-company-seo-cru/client/js/index.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/main-company-seo-cru/client/js/components.js"],"names":["require","fromEvent","take","elementExist","_require4","resolveComponents","getClickToCall","getVerticalTabs","getCalendarOptions","getCalendarOptionsObserver","observerConfig","element","calendarOptions","_toConsumableArray","querySelectorAll","map","item","loader","calendarOptionsObserver","IntersectionObserver","entries","forEach","entry","intersectionRatio","filter","component","target","reduce","acc","then","module","type","dataset","default","concat","unobserve","observe","getVerticalTabsObserver","verticalTabs","verticalTabsObserver","exports","selector","arguments","length","undefined","document","querySelector","config","_objectSpread","result","JSON","parse","publicPath","__webpack_public_path__","components","name","root","rootMargin","threshold","observer","faq","window","pipe","subscribe","faqEl","setTimeout","scrollIntoView","behavior","block","inline","COMPONENTS"],"mappings":"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","file":"main-company-seo-cru.7a436bd6ed50276d55ad.bundle.js","sourcesContent":["/* ==========================================================================\n MainCompanySeoCru > Client\n ========================================================================== */\n\n/* Import modules */\nrequire('intersection-observer');\n\nconst { fromEvent } = require('rxjs');\nconst { take } = require('rxjs/operators');\n\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\n\nconst { resolveComponents, getClickToCall, getVerticalTabs, getCalendarOptions } = require('./components');\n\n/**\n * MainCompanySeoCru component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function MainCompanySeoCru(selector = '[data-component=MainCompanySeoCru]') {\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 if (config.publicPath) __webpack_public_path__ = config.publicPath;\n /* eslint-enable */\n\n const components = resolveComponents()\n .filter(component => component.name !== 'VerticalTabs' && component.name !== 'CalendarOptions')\n .map(component => ({\n loader: component.loader,\n element: document.querySelector(`[data-component=\"${component.name}\"]`)\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.15\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 } = 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();\n\n observer.unobserve(entry.target);\n });\n }\n });\n }, observerConfig);\n\n components.forEach(component => {\n observer.observe(component.element);\n });\n\n /* VerticalTabs init */\n getVerticalTabsObserver(observerConfig, element);\n\n /* ClickToCall */\n getClickToCall().then(module => module.default());\n\n /* Auto scroll to FAQ */\n if (config.faq) {\n fromEvent(window, 'load')\n .pipe(take(1))\n .subscribe(() => {\n const faqEl = element.querySelector(`[data-component='VerticalTabs'][data-type='vertical-tabs-3']`);\n\n setTimeout(() => {\n faqEl.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });\n }, 50);\n });\n\n /* Calendar options */\n getCalendarOptions().then(module => module.default());\n\n return;\n }\n\n /* Calendar options */\n getCalendarOptionsObserver(observerConfig, element);\n }\n};\n\nfunction getCalendarOptionsObserver(observerConfig, element) {\n const calendarOptions = [...element.querySelectorAll('[data-component=\"CalendarOptions\"]')].map(item => ({\n loader: getCalendarOptions,\n element: item\n }));\n\n const calendarOptionsObserver = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n if (entry.intersectionRatio > 0) {\n const { loader } = calendarOptions\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 const { type } = entry.target.dataset;\n\n if (!type) {\n module.default(`[data-component=\"CalendarOptions\"]`);\n } else {\n module.default(`[data-component=\"CalendarOptions\"][data-type=\"${type}\"]`);\n }\n\n calendarOptionsObserver.unobserve(entry.target);\n });\n }\n });\n }, observerConfig);\n\n calendarOptions.forEach(component => {\n calendarOptionsObserver.observe(component.element);\n });\n}\n\nfunction getVerticalTabsObserver(observerConfig, element) {\n const verticalTabs = [...element.querySelectorAll('[data-component=\"VerticalTabs\"]')].map(item => ({\n loader: getVerticalTabs,\n element: item\n }));\n\n /**\n * Since we have multiple of the same component, in this\n * layout the verticalTabs component will have its own\n * observer part to handle its dynamic init\n */\n const verticalTabsObserver = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n if (entry.intersectionRatio > 0) {\n const { loader } = verticalTabs\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 const { type } = entry.target.dataset;\n module.default(`[data-component=\"VerticalTabs\"][data-type=\"${type}\"]`);\n\n verticalTabsObserver.unobserve(entry.target);\n });\n }\n });\n }, observerConfig);\n\n verticalTabs.forEach(component => {\n verticalTabsObserver.observe(component.element);\n });\n}\n","/**\n * ClickToCall\n */\nconst getClickToCall = () => {\n return import(\n /* webpackChunkName: \"click-to-call\" */\n '@bluekiri/alexandria-contrib-components/components/click-to-call/client/js'\n );\n};\n\n/**\n * MasonryCarousel\n */\nconst getMasonryCarousel = () => {\n return import(\n /* webpackChunkName: \"masonry-carousel\" */\n '@bluekiri/alexandria-contrib-components/components/masonry-carousel/client/js'\n );\n};\n\n/**\n * BreadcrumbsIdCru\n */\nconst getBreadcrumbsIdCru = () => {\n return import(\n /* webpackChunkName: \"breadcrumbs-id-cru\" */\n '../../../breadcrumbs-id-cru/client/js'\n );\n};\n\n/**\n * HeaderBanner\n */\nconst getHeaderBanner = () => {\n return import(\n /* webpackChunkName: \"header-banner\" */\n '../../../header-banner/client/js'\n );\n};\n\n/**\n * ShippingLine\n */\nconst getShippingLine = () => {\n return import(\n /* webpackChunkName: \"shipping-line-rxjs\" */\n '../../../shipping-line-rxjs/client/js'\n );\n};\n\n/**\n * CardEffectMaskCarousel\n */\nconst getCardEffectMaskCarousel = () => {\n return import(\n /* webpackChunkName: \"card-effect-mask-carousel\" */\n '../../../card-effect-mask-carousel/client/js'\n );\n};\n\n/**\n * ShipCardGalleryCarousel\n */\nconst getShipCardGalleryCarousel = () => {\n return import(\n /* webpackChunkName: \"ship-card-gallery-carousel\" */\n '../../../ship-card-gallery-carousel/client/js'\n );\n};\n\n/**\n * VerticalTabs\n */\nconst getVerticalTabs = () => {\n return import(\n /* webpackChunkName: \"vertical-tabs\" */\n '../../../vertical-tabs/client/js'\n );\n};\n\n/**\n * ProductListSorter\n */\nconst getProductListSorter = () => {\n return import(\n /* webpackChunkName: \"product-list-sorter\" */\n '../../../product-list-sorter/client/js'\n );\n};\n\n/**\n * GalleryCarousel\n */\nconst getGalleryVideoCarousel = () => {\n return import(\n /* webpackChunkName: \"gallery-video-carousel\" */\n '../../../gallery-video-carousel/client/js'\n );\n};\n\n/**\n * NewsletterAgent\n */\nconst getNewsletterAgent = () => {\n return import(\n /* webpackChunkName: \"newsletter-agent\" */\n '../../../newsletter-agent/client/js'\n );\n};\n\n/**\n * CarouselBanner\n */\nconst getCarouselBanner = () => {\n return import(\n /* webpackChunkName: \"carousel-banner\" */\n '../../../carousel-banner/client/js'\n );\n};\n\n/**\n * CalendarOptions\n */\nconst getCalendarOptions = () => {\n return import(\n /* webpackChunkName: \"calendar-options\" */\n '../../../calendar-options/client/js'\n );\n};\n\n/**\n * SearcherCru\n */\nconst getSearcherCru = () => {\n return import(\n /* webpackChunkName: \"searcher-cru\" */\n '../../../searcher-cru/client/js'\n );\n};\n\n/**\n * InformationCarousel\n */\nconst getInformationCarousel = () => {\n return import(\n /* webpackChunkName: \"information-carousel\" */\n '../../../information-carousel/client/js'\n );\n};\n\n/**\n * SingleBlog\n */\nconst getSingleBlog = () => {\n return import(\n /* webpackChunkName: \"single-blog\" */\n '../../../single-blog/client/js'\n );\n};\n\n/**\n * BlogTwo\n */\nconst getBlogTwo = () => {\n return import(\n /* webpackChunkName: \"blog-two\" */\n '../../../blog-two/client/js'\n );\n};\n\n/**\n * BlogFeed\n */\nconst getBlogFeed = () => {\n return import(\n /* webpackChunkName: \"blog-feed\" */\n '../../../blog-feed/client/js'\n );\n};\n\n/**\n * CompanyGallery\n */\nconst getCompanyGallery = () => {\n return import(\n /* webpackChunkName: \"company-gallery\" */\n '../../../company-gallery/client/js'\n );\n};\n\n/**\n * EcoCompany\n */\nconst getEcoCompany = () => {\n return import(\n /* webpackChunkName: \"eco-company\" */\n '../../../eco-company/client/js'\n );\n};\n\n/**\n * Components\n */\nconst COMPONENTS = [\n {\n loader: getBreadcrumbsIdCru,\n name: 'BreadcrumbsIdCru'\n },\n {\n loader: getHeaderBanner,\n name: 'HeaderBanner'\n },\n {\n loader: getShippingLine,\n name: 'ShippingLineRxjs'\n },\n {\n loader: getMasonryCarousel,\n name: 'MasonryCarousel'\n },\n {\n loader: getCardEffectMaskCarousel,\n name: 'CardEffectMaskCarousel'\n },\n {\n loader: getShipCardGalleryCarousel,\n name: 'ShipCardGalleryCarousel'\n },\n {\n loader: getProductListSorter,\n name: 'ProductListSorter'\n },\n {\n loader: getGalleryVideoCarousel,\n name: 'GalleryVideoCarousel'\n },\n {\n loader: getNewsletterAgent,\n name: 'NewsletterAgent'\n },\n {\n loader: getSearcherCru,\n name: 'SearcherCru'\n },\n {\n loader: getCarouselBanner,\n name: 'CarouselBanner'\n },\n {\n loader: getCalendarOptions,\n name: 'CalendarOptions'\n },\n {\n loader: getInformationCarousel,\n name: 'InformationCarousel'\n },\n {\n loader: getSingleBlog,\n name: 'SingleBlog'\n },\n {\n loader: getBlogTwo,\n name: 'BlogTwo'\n },\n {\n loader: getBlogFeed,\n name: 'BlogFeed'\n },\n {\n loader: getCompanyGallery,\n name: 'CompanyGallery'\n },\n {\n loader: getEcoCompany,\n name: 'EcoCompany'\n }\n];\n\n/**\n * Resolver components\n */\nfunction resolveComponents() {\n return COMPONENTS;\n}\n\nmodule.exports = {\n resolveComponents,\n getClickToCall,\n getVerticalTabs,\n getCalendarOptions\n};\n"],"sourceRoot":""}