{"version":3,"names":["ImageLoader","constructor","options","this","queue","backgroundQueue","lazyImageObserver","lazyBgObserver","webpSupported","supportsWebp","initialize","getImagesToLazyLoad","window","abort","onContentLoaded","setGenericPlaceholder","forEach","lazyImage","observe","lazyBg","document","querySelectorAll","genericImagePlaceholder","img","setAttribute","genericBgPlaceholder","bg","style","backgroundColor","IntersectionObserver","entries","entry","isIntersecting","target","classList","contains","dataset","src","srcset","remove","unobserve","webP","getAttribute","i","length","static","elem","createElement","getContext","toDataURL","indexOf","initResponsiveTables","iconElementName","table","hasAttribute","toggleAttribute","headers","tHead","body","tBodies","row","rows","firstCell","cells","rowBtn","expandIcon","collapseIcon","btnLabel","textContent","add","btnText","append","childNodes","addEventListener","e","preventDefault","shouldOpen","r","toggle","replaceChildren","headerText","colName","itinerarySliderImageSwap","slider","querySelector","imageTarget","current","detail","init","async","globalThis","imageLoader","setProperty","assetPath","currentYear","Date","getFullYear","toString","getStaggeredItems","staggerContainer","children","flatMap","child","container","item","showNicelyObserver","intersectingOrAbove","intersectionRatio","intersectionRect","height","boundingClientRect","bottom","element","dispatchEvent","CustomEvent","threshold","appGlobalScript","usingTemplateLoader","globalScripts"],"sources":["./src/global/image-loader.ts","./src/global/app-global/app-tables.ts","./src/components/shared/slides/itinerarySlider.ts","./src/global/app.ts","@stencil/core/internal/app-globals"],"sourcesContent":["/**\r\n * Lazy loads images that are set up properly. Aslo handled webp fallbacks\r\n * For img tags: \r\n * \r\n \r\n \r\n \"Image\r\n \r\n \r\n For BG Images:
\r\n\r\n For BG Images with webp:
\r\n\r\n more info: https://developers.google.com/web/fundamentals/performance/lazy-loading-guidance/images-and-video\r\n */\r\n\r\nexport class ImageLoader {\r\n public queue;\r\n public backgroundQueue;\r\n public lazyImageObserver;\r\n public lazyBgObserver;\r\n public options;\r\n public webpSupported;\r\n\r\n constructor(options = {}) {\r\n this.queue = [];\r\n this.backgroundQueue = [];\r\n this.lazyImageObserver = null;\r\n this.lazyBgObserver = null;\r\n this.options = options;\r\n this.webpSupported = ImageLoader.supportsWebp();\r\n }\r\n\r\n public initialize() {\r\n this.queue = [];\r\n this.backgroundQueue = [];\r\n this.lazyImageObserver = null;\r\n this.lazyBgObserver = null;\r\n\r\n this.getImagesToLazyLoad();\r\n\r\n if (!(\"IntersectionObserver\" in window)) {\r\n this.abort();\r\n return;\r\n }\r\n\r\n this.onContentLoaded();\r\n this.setGenericPlaceholder();\r\n\r\n this.queue.forEach((lazyImage) => {\r\n this.lazyImageObserver.observe(lazyImage);\r\n });\r\n\r\n this.backgroundQueue.forEach((lazyBg) => {\r\n this.lazyBgObserver.observe(lazyBg);\r\n });\r\n }\r\n\r\n getImagesToLazyLoad() {\r\n this.queue = document.querySelectorAll('.img-load-lazy');\r\n this.backgroundQueue = document.querySelectorAll('.lazy-load-bg');\r\n }\r\n\r\n setGenericPlaceholder() {\r\n if (this.options.genericImagePlaceholder) {\r\n this.queue.forEach((img) => {\r\n img.setAttribute('src', this.options.genericImagePlaceholder);\r\n });\r\n }\r\n\r\n if (this.options.genericBgPlaceholder) {\r\n this.backgroundQueue.forEach((bg) => {\r\n bg.style.backgroundColor = this.options.genericBgPlaceholder;\r\n });\r\n }\r\n }\r\n\r\n onContentLoaded() {\r\n this.lazyImageObserver = new IntersectionObserver((entries) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting) {\r\n let lazyImage: any = entry.target;\r\n\r\n if (lazyImage.classList.contains('img-load-lazy')) {\r\n if (lazyImage.dataset.src) {\r\n lazyImage.src = lazyImage.dataset.src;\r\n }\r\n if (lazyImage.dataset.srcset) {\r\n lazyImage.srcset = lazyImage.dataset.srcset;\r\n }\r\n lazyImage.classList.remove('img-load-lazy');\r\n this.lazyImageObserver.unobserve(lazyImage);\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.lazyBgObserver = new IntersectionObserver((entries) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting && entry.target.classList.contains('lazy-load-bg')) {\r\n const webP = entry.target.getAttribute('data-webp');\r\n if (this.webpSupported && webP && webP != '') {\r\n entry.target.setAttribute('style', `background-image: url(${webP})`);\r\n }\r\n\r\n entry.target.classList.remove('lazy-load-bg');\r\n this.lazyBgObserver.unobserve(entry.target);\r\n }\r\n });\r\n });\r\n }\r\n\r\n abort() {\r\n for (let i = 0; i < this.queue.length; i++) {\r\n this.queue[i].setAttribute('src', this.queue[i].getAttribute('data-src'));\r\n this.queue[i].classList.remove('img-load-lazy');\r\n }\r\n\r\n for (let i = 0; i < this.backgroundQueue.length; i++) {\r\n this.backgroundQueue[i].classList.remove('lazy-load-bg');\r\n }\r\n }\r\n\r\n static supportsWebp() {\r\n var elem = document.createElement('canvas');\r\n\r\n if (!!(elem.getContext && elem.getContext('2d'))) {\r\n // was able or not to get WebP representation\r\n return elem.toDataURL('image/webp').indexOf('data:image/webp') == 0;\r\n }\r\n else {\r\n // very old browser like IE 8, canvas not supported\r\n return false;\r\n }\r\n }\r\n\r\n}\r\n\r\ninterface AspectRatioInterface {\r\n ratio: Array,\r\n element: HTMLElement\r\n};\r\n\r\nexport class AspectRatio {\r\n\r\n public ratioX: number;\r\n public ratioY: number;\r\n public element: HTMLElement;\r\n\r\n constructor(options: AspectRatioInterface) {\r\n this.ratioX = options.ratio[0];\r\n this.ratioY = options.ratio[1];\r\n this.element = options.element;\r\n }\r\n\r\n maintain() {\r\n this.setAspectRatio();\r\n\r\n window.addEventListener('resize', () => {\r\n this.setAspectRatio();\r\n });\r\n }\r\n\r\n setAspectRatio() {\r\n const currentWidth = this.element.clientWidth;\r\n const heightPctByRatio = this.ratioY / this.ratioX;\r\n const computedHeight = currentWidth * heightPctByRatio;\r\n this.element.style.height = computedHeight + 'px';\r\n }\r\n\r\n}\r\n","export function initResponsiveTables() {\r\n\tconst iconElementName = 'app-icon';\r\n\r\n\t/**\r\n\t * Look for the .app-responsive-table class and update markup to include expand/collapse\r\n\t * buttons in the row header.\r\n\t */\r\n\tdocument.querySelectorAll('table.app-responsive-table').forEach((table: HTMLTableElement) => {\r\n\t\tif(table.hasAttribute('data-is-bound'))\r\n\t\t\treturn;\r\n\t\ttable.toggleAttribute('data-is-bound', true);\r\n\r\n\t\tconst headers = table.tHead?.querySelectorAll('th');\r\n\r\n\t\tfor (const body of table.tBodies) {\r\n\t\t\tfor (const row of body.rows) {\r\n\t\t\t\tconst firstCell = row.cells[0];\r\n\t\t\t\tconst rowBtn = document.createElement('button');\r\n\t\t\t\tconst expandIcon = document.createElement(iconElementName);\r\n\t\t\t\t\t expandIcon.setAttribute('icon', 'circle-plus');\r\n\t\t\t\tconst collapseIcon = document.createElement(iconElementName);\r\n\t\t\t\t\t collapseIcon.setAttribute('icon', 'circle-minus');\r\n\t\t\t\tconst btnLabel = document.createElement('span');\r\n\t\t\t\t\t btnLabel.textContent = \"Toggle row for\";\r\n\t\t\t\t\t btnLabel.classList.add('visually-hidden');\r\n\t\t\t\tconst btnText = document.createElement('span');\r\n\t\t\t\t\t btnText.append(...firstCell.childNodes);\r\n\r\n\t\t\t\trowBtn.append(expandIcon, collapseIcon, btnLabel, btnText);\r\n\r\n\t\t\t\trowBtn.addEventListener('click', (e) => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tconst shouldOpen = !row.classList.contains('show');\r\n\r\n\t\t\t\t\tbody.querySelectorAll('.show').forEach((r) => {\r\n\t\t\t\t\t\tr.classList.remove('show');\r\n\t\t\t\t\t});\r\n\t\t\t\t\trow.classList.toggle('show', shouldOpen);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tfirstCell.replaceChildren(rowBtn);\r\n\r\n\t\t\t\tfor (let i = 0; i < row.cells.length; i++) {\r\n\t\t\t\t\tconst headerText = headers?.[i]?.textContent;\r\n\t\t\t\t\tif (headerText)\r\n\t\t\t\t\t\trow.cells[i].dataset.colName = headerText;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t * Look for the .app-card-table class and update markup of table data cells to add the \r\n\t * table header text to a custom attribute. This attribtue will be used visually, \r\n\t * displaying the column name in a ::before pseudo element.\r\n\t */\r\n\tdocument.querySelectorAll('table.app-card-table').forEach((table: HTMLTableElement) => {\r\n\t\tif(table.hasAttribute('data-is-bound'))\r\n\t\t\treturn;\r\n\t\ttable.toggleAttribute('data-is-bound', true);\r\n\r\n\t\ttable.tHead?.classList.add(\"hidden-card-view\");\r\n\r\n\t\tconst headers = table.tHead?.querySelectorAll('th');\r\n\r\n\t\tfor (const body of table.tBodies) {\r\n\t\t\tfor (const row of body.rows) {\r\n\t\t\t\tfor (let i = 0; i < row.cells.length; i++) {\r\n\t\t\t\t\tconst headerText = headers?.[i]?.textContent;\r\n\t\t\t\t\tif (headerText)\r\n\t\t\t\t\t\trow.cells[i].dataset.colName = headerText;\r\n\r\n\t\t\t\t\tif (headers?.[i]?.hasAttribute('data-hide-on-card')) {\r\n\t\t\t\t\t\trow.cells[i].classList.add('hidden-card-view');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n}\r\n","/**\r\n\tSwap image in Itinerary Slider when slide changes\r\n*/\r\nexport const itinerarySliderImageSwap = () => {\r\n\tconst slider: any = document.querySelector('app-slides.itineraries');\r\n\tconst imageTarget: any = document.querySelector('.app-itineraries .rotator-image img');\r\n\r\n\tif (!slider || !imageTarget) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tslider.addEventListener('slideSelected', (e) => {\r\n\t\tconst current = e.detail;\r\n\r\n\t\tif (current && current.getAttribute('data-img')) {\r\n\t\t\timageTarget.setAttribute('src', current.getAttribute('data-img'));\r\n\t\t}\r\n\t\t\r\n\t\tif(current && current.getAttribute('data-alt')) {\r\n\t\t\timageTarget.setAttribute('alt', current.getAttribute('data-alt'));\r\n\t\t}\r\n\t});\r\n};","import { ImageLoader } from './image-loader';\r\nimport { initResponsiveTables } from './app-global/app-tables';\r\nimport { itinerarySliderImageSwap } from 'components/shared/slides/itinerarySlider';\r\n\r\ndeclare global {\r\n\tvar assetPath: string;\r\n\tvar iconSheet: string;\r\n\tvar usingTemplateLoader: boolean | undefined;\r\n\tvar imageLoader: ImageLoader;\r\n}\r\n\r\nconst init = async () => {\r\n\tglobalThis.imageLoader = new ImageLoader();\r\n\tglobalThis.imageLoader.initialize();\r\n\r\n\tinitResponsiveTables();\r\n\r\n\tdocument.body.style.setProperty('--check-image', `url(${assetPath}/icon/checkmark.svg)`);\r\n\r\n\tconst currentYear = new Date().getFullYear().toString();\r\n\tdocument.querySelectorAll('time.current-year')\r\n\t\t.forEach((e: HTMLTimeElement) => {\r\n\t\t\te.textContent = currentYear;\r\n\t\t});\r\n\r\n\tconst getStaggeredItems = (staggerContainer: HTMLElement): ReadonlyArray =>\r\n\t\t[...staggerContainer.children].flatMap((child: HTMLElement) => {\r\n\t\t\tif (child.classList.contains('stagger-contents'))\r\n\t\t\t\treturn getStaggeredItems(child);\r\n\t\t\treturn child;\r\n\t\t});\r\n\tdocument.querySelectorAll('.stagger-container').forEach((container: HTMLElement) => {\r\n\t\tgetStaggeredItems(container).forEach((item, i) => {\r\n\t\t\titem.style.setProperty('--stagger-index', i + '');\r\n\t\t});\r\n\t});\r\n\r\n\tconst showNicelyObserver = new IntersectionObserver(entries => {\r\n\t\tentries.forEach(entry => {\r\n\t\t\tconst intersectingOrAbove =\r\n\t\t\t\tentry.intersectionRatio > 0.7 ||\r\n\t\t\t\tentry.intersectionRect.height > 150 ||\r\n\t\t\t\tentry.boundingClientRect.bottom <= 0;\r\n\t\t\tconst element = entry.target;\r\n\t\t\telement.classList.toggle('show-later', !intersectingOrAbove);\r\n\t\t\tif (intersectingOrAbove) {\r\n\t\t\t\tshowNicelyObserver.unobserve(element);\r\n\t\t\t\telement.classList.add('showing');\r\n\t\t\t\telement.dispatchEvent(new CustomEvent('showingNicely'));\r\n\t\t\t}\r\n\t\t});\r\n\t}, {\r\n\t\tthreshold: [0, 0.25, 0.5, 0.75, 1]\r\n\t});\r\n\tdocument.querySelectorAll('.show-nicely').forEach(element => {\r\n\t\tshowNicelyObserver.observe(element);\r\n\t});\r\n\t\r\n\titinerarySliderImageSwap();\r\n};\r\n\r\nexport default async () => {\r\n\tif (globalThis.usingTemplateLoader)\r\n\t\taddEventListener('templateLoaded', init);\r\n\telse {\r\n\t\tdocument.addEventListener(\"DOMContentLoaded\", function() {\r\n\t\t\tinit();\r\n\t\t});\r\n\t}\r\n};\r\n","import appGlobalScript from 'D:/a/1/s/Xperience/wwwroot/ui/src/global/app.ts';\nexport const globalScripts = appGlobalScript;\n"],"mappings":"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"}