{"version":3,"file":"js/app.ce19dd98.js","mappings":"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","sources":["webpack://napier/webpack/runtime/chunk loaded","webpack://napier/./src/scripts/utils/debounce.ts","webpack://napier/./src/scripts/components/breadcrumb.ts","webpack://napier/./src/scripts/components/slider.ts","webpack://napier/./src/scripts/components/video-modal.ts","webpack://napier/./src/scripts/index.ts","webpack://napier/webpack/bootstrap","webpack://napier/webpack/runtime/define property getters","webpack://napier/webpack/runtime/global","webpack://napier/webpack/runtime/hasOwnProperty shorthand","webpack://napier/webpack/runtime/make namespace object","webpack://napier/webpack/runtime/jsonp chunk loading","webpack://napier/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","export function debounce(fn: Function, delay: number) {\n let timeoutId: NodeJS.Timeout;\n\n return function(...args: unknown[]) {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n\n timeoutId = setTimeout(() => {\n fn(...args);\n }, delay);\n };\n}\n","import { debounce } from '../utils/debounce';\n\nexport const BREADCRUMB_CONTAINER = 'data-breadcrumb';\nconst START_HIDDEN_CLASS = 'start-hidden';\nconst END_HIDDEN_CLASS = 'end-hidden';\n\nexport class Breadcrumb {\n private breadcrumbContainerElement: HTMLElement;\n private breadcrumbElement: HTMLElement;\n private breadcrumbScrollHandler!: (event: Event) => void;\n private windowResizeHandler!: () => void;\n\n constructor(breadcrumbContainerElement: HTMLElement) {\n this.breadcrumbScrollHandler = this.handleBreadcrumbScroll.bind(this);\n this.windowResizeHandler = this.resetScrollPosition.bind(this);\n\n this.breadcrumbContainerElement = breadcrumbContainerElement;\n this.breadcrumbElement = breadcrumbContainerElement?.querySelector('.breadcrumb') as HTMLElement;\n\n if (breadcrumbContainerElement != null && this.breadcrumbElement != null) {\n this.initEvents();\n\n setTimeout(() => {\n this.resetScrollPosition();\n this.calculateClasses();\n }, 0);\n }\n }\n\n private initEvents() {\n this.breadcrumbElement.addEventListener('scroll', this.breadcrumbScrollHandler);\n\n window.addEventListener('resize', debounce(this.windowResizeHandler, 50));\n }\n\n private handleBreadcrumbScroll() {\n this.calculateClasses();\n }\n\n private resetScrollPosition() {\n this.breadcrumbElement.scrollLeft = this.breadcrumbElement.scrollWidth - this.breadcrumbElement.offsetWidth;\n }\n\n private calculateClasses() {\n const containerElement = this.breadcrumbContainerElement;\n\n if (this.breadcrumbElement.scrollLeft <= 1 && containerElement.classList.contains(START_HIDDEN_CLASS)) {\n containerElement.classList.remove(START_HIDDEN_CLASS);\n } else if (\n this.breadcrumbElement.scrollLeft > 0 &&\n containerElement.classList.contains(START_HIDDEN_CLASS) === false\n ) {\n containerElement.classList.add(START_HIDDEN_CLASS);\n }\n\n const maxLeftPosition = this.breadcrumbElement.scrollWidth - this.breadcrumbElement.offsetWidth - 1;\n\n if (this.breadcrumbElement.scrollLeft >= maxLeftPosition && containerElement.classList.contains(END_HIDDEN_CLASS)) {\n containerElement.classList.remove(END_HIDDEN_CLASS);\n } else if (\n this.breadcrumbElement.scrollLeft < maxLeftPosition &&\n containerElement.classList.contains(END_HIDDEN_CLASS) === false\n ) {\n containerElement.classList.add(END_HIDDEN_CLASS);\n }\n }\n}\n","import { debounce } from '../utils/debounce';\n\nexport const SLIDER_DATA_CONTAINER = 'data-napier-slider';\nconst SLIDER_TRANSITION_OFFSET = 600;\n\nexport class Slider {\n private sliderContainerElement: HTMLElement;\n private slideElements: HTMLLIElement[] = [];\n private slideElementsLinks: HTMLAnchorElement[] = [];\n private currentElementIndex: number = 0;\n private linkElementClickHandler!: (event: MouseEvent) => void;\n private linkWidthUpdateHandler!: () => void;\n private mouseDownHandler!: (event: MouseEvent | TouchEvent) => void;\n private mouseoUpHandler!: () => void;\n private mouseoMoveHandler!: (event: MouseEvent | TouchEvent) => void;\n private isMoving = false;\n private initialXPosition = 0;\n\n constructor(sliderContainerElement: HTMLElement) {\n this.linkElementClickHandler = this.handleLinkElementClick.bind(this);\n this.linkWidthUpdateHandler = this.updateLinkElementsWidth.bind(this);\n this.mouseDownHandler = this.onContainerMouseDown.bind(this);\n this.mouseoUpHandler = this.onContainerMouseUp.bind(this);\n this.mouseoMoveHandler = this.onContainerMouseMove.bind(this);\n\n this.sliderContainerElement = sliderContainerElement;\n\n if (sliderContainerElement != null) {\n this.slideElements = Array.from(sliderContainerElement.querySelectorAll('li'));\n this.slideElementsLinks = Array.from(sliderContainerElement.querySelectorAll('.item-container'));\n\n this.initEvents();\n\n setTimeout(() => {\n this.updateLinkElementsWidth();\n this.updateCurrentElementIndex();\n\n setTimeout(() => {\n this.sliderLoaded();\n }, 0);\n }, 0);\n }\n }\n\n private initEvents() {\n this.slideElementsLinks.forEach(linkElement => {\n linkElement.addEventListener('click', this.linkElementClickHandler);\n });\n\n this.sliderContainerElement.addEventListener('mousedown', this.mouseDownHandler);\n this.sliderContainerElement.addEventListener('touchstart', this.mouseDownHandler);\n this.sliderContainerElement.addEventListener('mouseup', this.mouseoUpHandler);\n this.sliderContainerElement.addEventListener('touchend', this.mouseoUpHandler);\n this.sliderContainerElement.addEventListener('mousemove', this.mouseoMoveHandler);\n this.sliderContainerElement.addEventListener('touchmove', this.mouseoMoveHandler);\n\n window.addEventListener('resize', debounce(this.linkWidthUpdateHandler, 50));\n }\n\n private sliderLoaded(): void {\n this.sliderContainerElement.classList.add('loaded');\n }\n\n private handleLinkElementClick(event: MouseEvent): void {\n event.preventDefault();\n\n const targetLinkElement = (event.target as HTMLElement)?.parentNode;\n const newElementIndex = this.slideElementsLinks.findIndex(linkElement => linkElement === targetLinkElement);\n\n if (newElementIndex > -1) {\n this.setCurrentSlide(newElementIndex);\n }\n }\n\n private setCurrentSlide(slideIndex: number): void {\n this.slideElements.forEach(slideElement => {\n slideElement.classList.remove('current');\n });\n\n this.slideElements[slideIndex]?.classList.add('current');\n\n setTimeout(() => {\n this.updateCurrentElementIndex();\n }, 0);\n\n setTimeout(() => {\n window.location.href = this.slideElementsLinks[this.currentElementIndex]?.href;\n }, SLIDER_TRANSITION_OFFSET);\n }\n\n private updateLinkElementsWidth(): void {\n const containerRects = this.sliderContainerElement.getBoundingClientRect();\n const newWidth = `calc(${containerRects.width}px - ${2 * (this.slideElements.length - 1)}rem)`;\n\n this.slideElementsLinks.forEach(linkElement => (linkElement.style.width = newWidth));\n }\n\n private updateCurrentElementIndex(): void {\n this.currentElementIndex = this.slideElements.findIndex(slideElement => slideElement.classList.contains('current'));\n }\n\n private onContainerMouseDown(event: MouseEvent | TouchEvent): void {\n const eventTarget = (event as TouchEvent).changedTouches ? (event as TouchEvent).changedTouches[0] : event;\n\n this.isMoving = true;\n this.initialXPosition = (eventTarget as Touch).clientX;\n }\n\n private onContainerMouseUp(): void {\n this.isMoving = false;\n this.initialXPosition = 0;\n }\n\n private onContainerMouseMove(event: MouseEvent | TouchEvent): void {\n if (this.isMoving === false) {\n return;\n }\n\n const eventTarget = (event as TouchEvent).changedTouches ? (event as TouchEvent).changedTouches[0] : event;\n\n event.preventDefault();\n\n const positionDifference = (eventTarget as Touch).clientX - this.initialXPosition;\n const moveDirection = Math.sign(positionDifference);\n\n if (moveDirection === 1 && this.currentElementIndex !== 0) {\n this.setCurrentSlide(this.currentElementIndex - 1);\n this.isMoving = false;\n } else if (moveDirection === -1 && this.currentElementIndex !== this.slideElements.length - 1) {\n this.setCurrentSlide(this.currentElementIndex + 1);\n this.isMoving = false;\n }\n }\n}\n","import { Modal } from 'bootstrap';\n\ntype EventListenerParams = Parameters;\n\nexport const VIDEO_MODAL_DATA_TOGGLE = 'data-napier-video';\n\nexport class VideoModal {\n private videoUrl = '';\n private videoLabel = '';\n private videoTitle: string | undefined;\n private videoModalElement: HTMLDivElement | undefined;\n private videoModal: Modal | undefined;\n private videoModalCloseElement: HTMLButtonElement | undefined;\n private openHandler!: EventListenerParams[1];\n private closeHandler!: EventListenerParams[1];\n private removable = true;\n\n constructor(videoToggleElement: HTMLElement) {\n this.openHandler = this.openModal.bind(this);\n this.closeHandler = this.closeModal.bind(this);\n\n if (videoToggleElement != null) {\n this.videoUrl = videoToggleElement.dataset['napierVideo'] ?? '';\n this.videoLabel = videoToggleElement.dataset['napierVideoLabel'] ?? '';\n this.videoTitle = videoToggleElement.dataset['napierVideoTitle'] ?? undefined;\n\n videoToggleElement.addEventListener('click', this.openHandler);\n }\n }\n\n private openModal(): void {\n this.removable = false;\n\n if (this.videoModal == null && this.videoModalElement == null) {\n this.videoModalElement = this.generateModal();\n this.videoModal = new Modal(this.videoModalElement, { backdrop: true, keyboard: true, focus: true });\n }\n\n this.videoModal?.show();\n }\n\n private closeModal(): void {\n this.videoModal?.hide();\n this.removable = true;\n\n setTimeout(() => {\n if (this.removable === true) {\n this.videoModalCloseElement?.removeEventListener('click', this.closeHandler);\n this.videoModal?.dispose();\n this.videoModalElement?.remove();\n\n this.videoModal = undefined;\n this.videoModalElement = undefined;\n }\n }, 500);\n }\n\n private generateModal(): HTMLDivElement {\n // Create container\n const modalContainer = document.createElement('div');\n\n modalContainer.classList.add('modal', 'fade');\n modalContainer.ariaRoleDescription = 'dialog';\n modalContainer.tabIndex = -1;\n modalContainer.ariaModal = 'true';\n modalContainer.ariaLabel = this.videoLabel;\n\n // Create dialog\n const modalDialog = document.createElement('div');\n\n modalDialog.classList.add('modal-dialog', 'modal-lg', 'modal-dialog-centered');\n modalContainer.appendChild(modalDialog);\n\n // Create content\n const modalContent = document.createElement('div');\n\n modalContent.classList.add('modal-content');\n modalDialog.appendChild(modalContent);\n\n // Create header\n const modalHeader = document.createElement('div');\n const closeButton = document.createElement('button');\n const closeButtonLabel = document.createElement('span');\n const closeButtonInner = document.createElement('div');\n const closeButtonSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n const closeButtonSvgUse = document.createElementNS('http://www.w3.org/2000/svg', 'use');\n\n modalHeader.classList.add('modal-header');\n closeButton.type = 'button';\n closeButton.classList.add('close-btn');\n closeButton.title = 'close video modal';\n closeButtonLabel.textContent = 'close';\n closeButtonInner.classList.add('close-button-inner-element');\n closeButtonInner.ariaHidden = 'true';\n closeButtonSvg.setAttribute('viewBox', '0 0 38 37');\n closeButtonSvg.setAttribute('focusable', 'false');\n closeButtonSvgUse.setAttribute('href', '#napier-close-cross-icon');\n\n modalContent.appendChild(modalHeader);\n modalHeader.appendChild(closeButton);\n closeButton.appendChild(closeButtonLabel);\n closeButton.appendChild(closeButtonInner);\n closeButtonInner.appendChild(closeButtonSvg);\n closeButtonSvg.appendChild(closeButtonSvgUse);\n\n // Add close handler\n this.videoModalCloseElement = closeButton;\n this.videoModalCloseElement.addEventListener('click', this.closeHandler);\n\n // Create body\n const modalBody = document.createElement('div');\n const videoContainer = document.createElement('div');\n const videoElement = document.createElement('iframe');\n\n modalBody.classList.add('modal-body');\n videoContainer.classList.add('ratio', 'ratio-16x9');\n videoElement.src = this.videoUrl;\n videoElement.allowFullscreen = true;\n\n if (this.videoTitle != null) {\n videoElement.title = this.videoTitle;\n }\n\n modalContent.appendChild(modalBody);\n modalBody.appendChild(videoContainer);\n videoContainer.appendChild(videoElement);\n\n // Append modal to document\n document.body.appendChild(modalContainer);\n\n return modalContainer;\n }\n}\n","import '../styles/index.scss';\nimport { Breadcrumb, BREADCRUMB_CONTAINER } from './components/breadcrumb';\nimport { Slider, SLIDER_DATA_CONTAINER } from './components/slider';\nimport { VideoModal, VIDEO_MODAL_DATA_TOGGLE } from './components/video-modal';\n\nif (process.env.NODE_ENV === 'development') {\n require('../index.html');\n require('../health.html');\n require('../environment.html');\n require('../copyright-policy.html');\n require('../communities.html');\n require('../advanced-tech.html');\n}\n\nfunction initVideoModals() {\n const videoElements = document.querySelectorAll(`[${VIDEO_MODAL_DATA_TOGGLE}]`);\n\n videoElements.forEach(videoElement => {\n new VideoModal(videoElement as HTMLElement);\n });\n}\n\nfunction initSliders() {\n const sliderElements = document.querySelectorAll(`[${SLIDER_DATA_CONTAINER}]`);\n\n sliderElements.forEach(sliderElement => {\n new Slider(sliderElement as HTMLElement);\n });\n}\n\nfunction initBreadcrumbs() {\n const breadcrumbElements = document.querySelectorAll(`[${BREADCRUMB_CONTAINER}]`);\n\n breadcrumbElements.forEach(breadcrumbElement => {\n new Breadcrumb(breadcrumbElement as HTMLElement);\n });\n}\n\n(() => {\n initVideoModals();\n initSliders();\n initBreadcrumbs();\n})();\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknapier\"] = self[\"webpackChunknapier\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [237], function() { return __webpack_require__(9864); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","debounce","fn","delay","timeoutId","args","clearTimeout","setTimeout","START_HIDDEN_CLASS","END_HIDDEN_CLASS","Breadcrumb","breadcrumbContainerElement","this","breadcrumbScrollHandler","handleBreadcrumbScroll","bind","windowResizeHandler","resetScrollPosition","breadcrumbElement","querySelector","initEvents","calculateClasses","addEventListener","window","scrollLeft","scrollWidth","offsetWidth","containerElement","classList","contains","remove","add","maxLeftPosition","Slider","sliderContainerElement","linkElementClickHandler","handleLinkElementClick","linkWidthUpdateHandler","updateLinkElementsWidth","mouseDownHandler","onContainerMouseDown","mouseoUpHandler","onContainerMouseUp","mouseoMoveHandler","onContainerMouseMove","slideElements","Array","from","querySelectorAll","slideElementsLinks","updateCurrentElementIndex","sliderLoaded","forEach","linkElement","event","preventDefault","targetLinkElement","target","parentNode","newElementIndex","findIndex","setCurrentSlide","slideIndex","slideElement","location","href","currentElementIndex","containerRects","getBoundingClientRect","newWidth","width","length","style","eventTarget","changedTouches","isMoving","initialXPosition","clientX","positionDifference","moveDirection","Math","sign","VideoModal","videoToggleElement","openHandler","openModal","closeHandler","closeModal","videoUrl","dataset","videoLabel","videoTitle","undefined","removable","videoModal","videoModalElement","generateModal","Modal","backdrop","keyboard","focus","show","hide","videoModalCloseElement","removeEventListener","dispose","modalContainer","document","createElement","ariaRoleDescription","tabIndex","ariaModal","ariaLabel","modalDialog","appendChild","modalContent","modalHeader","closeButton","closeButtonLabel","closeButtonInner","closeButtonSvg","createElementNS","closeButtonSvgUse","type","title","textContent","ariaHidden","setAttribute","modalBody","videoContainer","videoElement","src","allowFullscreen","body","sliderElement","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","m","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","key","splice","r","d","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal","self","push","__webpack_exports__"],"sourceRoot":""}