{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./assets/src/scripts/stories/helpers.js","webpack:///./assets/src/scripts/stories/modules/globals/siteHeader.js","webpack:///./assets/src/scripts/stories/modules/globals/siteHeaderSearch.js","webpack:///./node_modules/@splidejs/splide/dist/js/splide.esm.js","webpack:///./assets/src/scripts/stories/modules/sliderHero.js","webpack:///./assets/src/scripts/stories/modules/pictureLoaded.js","webpack:///./assets/src/scripts/stories/modules/carouselRow.js","webpack:///./assets/src/scripts/stories/modules/categoryBrowse.js","webpack:///./assets/src/scripts/stories/modules/storyVideo.js","webpack:///./assets/src/scripts/stories/modules/shareOptions.js","webpack:///./assets/src/scripts/stories/modules/tabNavigationSelect.js","webpack:///./assets/src/scripts/stories/modules/holdingContent.js","webpack:///./assets/src/scripts/stories/storiesScripts.js","webpack:///./assets/src/scripts/stories/modules/globals/tableRoles.js","webpack:///./assets/src/scripts/stories/modules/globals/listRoles.js","webpack:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/OverloadYield.js","webpack:///./node_modules/@babel/runtime/helpers/regenerator.js","webpack:///./node_modules/@babel/runtime/helpers/regeneratorDefine.js","webpack:///./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","webpack:///./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./node_modules/dialog-polyfill/dist/dialog-polyfill.esm.js","webpack:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack:///./node_modules/@babel/runtime/helpers/regeneratorAsync.js","webpack:///./node_modules/@babel/runtime/helpers/regeneratorKeys.js","webpack:///./node_modules/@babel/runtime/helpers/regeneratorValues.js","webpack:///./assets/src/scripts/shared/isPictureLoaded.js","webpack:///./assets/src/scripts/modules/lazyLoadImages.js","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","arrayLikeToArray","Array","isArray","iterator","from","TypeError","getControllerElements","searchString","arguments","length","undefined","attributeName","parentElement","document","elements","querySelectorAll","concat","result","forEach","element","getAttribute","split","includes","push","getContollerTargets","getContollerTarget","SiteHeader","_createClass","_this","_classCallCheck","this","headerContainer","querySelector","mobileStack","findTargets","scrollThreshold","watchScroll","handleScroll","styles","getComputedStyle","mediaQuery","getPropertyValue","watchMediaQuery","mobileToggleTargets","button","addEventListener","e","toggleMobile","mobileOpenTargets","openMobileScreen","mobileBackTargets","mobileGoBack","desktopMenuTargets","menu","setDesktopActiveSection","handleDesktopTriggerClick","handleDesktopPanelKeydown","esc","closeMobile","_this2","targets","target","_this3","isCheckingScroll","event","window","requestAnimationFrame","passive","scrollPosition","pageYOffset","documentElement","scrollTop","classList","toggle","body","_this4","matchMedia","add","offsetHeight","remove","matches","currentTarget","isOpen","setAttribute","setPageInert","renderMobileScreens","lockScroll","path","dataset","opens","pop","unlockScroll","scrollY","scrollbarWidth","innerWidth","clientWidth","style","setProperty","Math","max","contains","scrollTo","stack","activePaths","Set","mobileScreenTargets","screen","matchesStack","every","segment","isActive","isPrevious","state","toggleAttribute","String","has","mobileNavTargets","nav","which","container","exceptions","isInert","children","child","isMobile","setInert","_toConsumableArray","trigger","closest","activateDesktopSection","sectionIndex","index","content","panel","detail","getElementById","_ref","getDesktopPanelFocusables","firstFocusable","_slicedToArray","focus","shiftKey","id","preventDefault","targetElement","targetArray","findIndex","SiteHeaderSearch","dialogPolyfill","registerDialog","openTarget","showModal","closeTarget","close","_defineProperties","props","descriptor","configurable","writable","STATES","CREATED","MOUNTED","IDLE","MOVING","SCROLLING","DRAGGING","DESTROYED","empty","array","slice","arrayLike","start","end","apply","func","nextTick","setTimeout","noop","raf","typeOf","type","subject","isObject","isNull","isFunction","isString","isUndefined","isHTMLElement","ownerDocument","defaultView","HTMLElement","toArray","values","iteratee","indexOf","items","toggleClass","elm","classes","addClass","append","parent","appendChild","before","nodes","ref","node","parentNode","insertBefore","selector","children2","filter","firstElementChild","ownKeys","keys","forOwn","right","reverse","source","merge","omit","removeAttribute","elms","attrs","attr","value2","tag","createElement","prop","display","display2","preventScroll","hasClass","className","rect","getBoundingClientRect","removeChild","parseHtml","html","DOMParser","parseFromString","prevent","stopPropagation","stopImmediatePropagation","query","queryAll","removeClass","timeOf","timeStamp","unit","assert","condition","message","Error","min","floor","ceil","abs","approximatelyEqual","x","y","epsilon","between","number","exclusive","minimum","maximum","clamp","sign","format","string","replacements","replacement","replace","pad","ids","uniqueId","prefix","EventBinder","listeners","forEachEvent","events","events2","eventNS","fragment","callback","options","namespace","isEventTarget","remover","removeEventListener","unbind","listener","dispatch","CustomEvent","bubbles","createEvent","initCustomEvent","dispatchEvent","destroy","data","EventInterface","Splide2","bus","createDocumentFragment","binder","on","join","off","emit","RequestInterval","interval","onInterval","onUpdate","limit","startTime","now","Date","rate","paused","count","update","pause","cancel","cancelAnimationFrame","resume","rewind","set","time","isPaused","ORIENTATION_MAP","width","left","X","Y","ArrowLeft","ARROW","ArrowRight","Direction","Components2","resolve","axisOnly","direction","match","offset","toLowerCase","charAt","toUpperCase","orient","ROLE","ALL_ATTRIBUTES","ARIA_PREFIX","CLASS_ROOT","CLASS_ACTIVE","STATUS_CLASS_PREFIX","STATUS_CLASSES","CLASSES","slide","CLASS_PREFIX","clone","CLASS_SLIDE","arrows","arrow","prev","CLASS_ARROW","next","pagination","page","CLASS_PAGINATION","spinner","POINTER_UP_EVENTS","LOOP","Slide$1","slideIndex","destroyed","Components","root","isNavigation","updateOnMove","i18n","slideFocus","label","isClone","initNavigation","controls","splides","map","Slide2","splide","Slides","getAt","slideX","onMove","curr","active","self","visible","is","trackRect","Elements","track","slideRect","isVisible","hidden","focusableNodes","activeElement","updateVisibility","cloneStatus","mount","slideLabel","useContainer","isWithin","distance","diff","PATH","SCROLL_LISTENER_OPTIONS","capture","NORMALIZATION_MAP","Spacebar","Right","Left","Up","Down","normalizeKey","TRIGGER_KEYS","ComponentConstructors","freeze","__proto__","Media","breakpoints","reducedMotion","queries","completely","register","options2","queryList","merged","reduce","merged2","entry","refresh","opts","base","notify","getPrototypeOf","setup","isMin","sort","enable","list","isUsingKey","_EventInterface","slides","rootClasses","trackClasses","find","bar","CLASS_PROGRESS","role","tagName","carousel","init","getClasses","labelledby","nodeType","drag","POINTER_DOWN_EVENTS","_EventInterface2","_Components2$Elements","Slides2","forEach$1","Slide1","excludeClones","matcher","getIn","Controller","toIndex","hasFocus","perPage","images","img","getLength","isEnough","Layout","vertical","rootRect","overflow","_EventInterface3","_Components2$Elements2","styleSlides","cssPadding","resize","force","newRect","height","cssHeight","cssTrackHeight","gap","autoWidth","fixedWidth","cssSlideSize","fixedHeight","autoHeight","isOverflow","padding","heightRatio","listSize","slideSize","withoutGap","Slide","getGap","totalSize","sliderSize","parseFloat","duration","getPadding","Clones","cloneCount","clones","remount","observe","computeCloneCount","isHead","cloneNode","cloneDeep","generate","clones2","fixedSize","Move","Transition","_EventInterface4","_Components2$Layout","_Components2$Directio","_Components2$Elements3","reposition","isBusy","Scroll","jump","translate","toPosition","position","preventLoop","destination","exceededMax","getEnd","shift","loop","backwards","excess","getLimit","size","getPosition","minDistance","Infinity","trimming","trimSpace","trim","move","dest","shifted","exceededLimit","exceededMin","endIndex","slideCount","perMove","_EventInterface5","_Components2$Slides","omitEnd","isLoop","isSlide","getNext","getAdjacent","getPrev","currIndex","prevIndex","onResized","computeDestIndex","snapPage","computeMovableDestIndex","toPage","setIndex","waitForTransition","go","control","allowSameIndex","indicator","parse","scroll","snap","getIndex","toDest","Arrows","created","wrapperClasses","placeholder","wrapper","enabled","createArrow","CLASS_ARROWS","prev2","arrowPath","nextIndex","prevLabel","last","nextLabel","first","disabled","Autoplay","hovered","focused","_EventInterface6","_Components2$Elements4","autoplay","stopped","play","resetProgress","stop","autoToggle","DATA_ATTRIBUTE","pauseOnHover","pauseOnFocus","listen","Cover","cover","cover2","src","_EventInterface8","friction","onScrolled","noConstrain","clear","noDistance","onEnd","to","easingFunc","pow","Drag","basePosition","baseEvent","prevBaseEvent","isFree","dragging","clickPrevented","_EventInterface9","_Components2$Directio2","exceeded","disable","onPointerDown","isTouch","isTouchEvent","target2","noDrag","onPointerMove","onPointerUp","save","cancelable","diffCoord","expired","diffTime","hasExceeded","isSliderDirection","thresholds","dragMinThreshold","isObj","mouse","touch","shouldStart","velocity","computeVelocity","flickPower","flickMaxPages","computeDestination","rewindByDrag","onClick","orthogonal","coordOf","getBaseEvent","changedTouches","TouchEvent","isDragging","Keyboard","_EventInterface10","keyboard","onKeydown","_disabled","LazyLoad","_EventInterface11","isSequential","lazyLoad","entries","srcset","SRC_DATA_ATTRIBUTE","loadNext","check","preloadPages","load","onLoad","Pagination","paginationClasses","dir","getDirection","nextPage","item","paginationDirection","_button","select","li","class","text","pageX","paginationKeyboard","createPagination","Sync","isParent","sync","Wheel","lastTime","onWheel","deltaY","_min","wheelMinThreshold","sleep","wheelSleep","releaseWheel","shouldPrevent","wheel","Live","live","sr","textContent","DEFAULTS","speed","easing","rewindSpeed","Fade","done","endCallback","transition","getSpeed","useScroll","Splide","_Splide","states","_o","_E","defaults","JSON","Constructor","protoProps","staticProps","_proto","Extensions","_C","_T","Component","component","_this$event","SliderHero","slideTargets","attachSplide","slider","PictureLoaded","imageTargets","watchImageLoading","image","isPictureLoaded","then","loaded","OPTIONS","CONTROLLERS","CarouselRow","CategoryBrowse","_this$noResults","searchInput","noResults","noResultsMessage","resetButton","grid","reset","queryLower","visibleCount","titleFor","titleElement","title","StoryVideo","buttonTarget","videoTarget","iframeSrc","ShareOptions","buttonTargets","link","top","innerHeight","open","TabNavigationSelect","location","href","HoldingContent","_event$detail","holdingContentActive","initialise","controllerName","allTables","allCaptions","allRowGroups","allRows","allCells","allHeaders","allRowHeaders","console","log","tableRoles","allLists","allListItems","allDefLists","allDefTerms","allDefItems","listRoles","lazyLoadImages","asyncGeneratorStep","a","u","Promise","_next","_throw","_typeof","constructor","toPropertyKey","toPrimitive","Number","v","k","regeneratorDefine","_regenerator","Generator","f","G","GeneratorFunction","GeneratorFunctionPrototype","setPrototypeOf","displayName","w","_regeneratorDefine","_invoke","regenerator","regeneratorAsyncIterator","OverloadYield","AsyncIterator","asyncIterator","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","supportCustomEvent","safeDispatchEvent","findNearestDialog","el","localName","host","safeBlur","shadowRoot","blur","inNodeList","nodeList","isFormMethodDialog","hasAttribute","isConnected","findFormSubmitter","submitter","form","HTMLFormElement","formSubmitter","getRootNode","maybeHandleSubmit","defaultPrevented","imagemapUseValue","dialog","dialogPolyfillInfo","dialog_","replacedStyleTop_","openAsModal_","show","returnValue","MutationObserver","maybeHideModal","attributes","attributeFilter","timeout","removed","cb","downgradeModal","delayModel","ev","cand","substr","clearTimeout","setOpen","backdrop_","backdropMouseEvent_","Event","zIndex","dm","removeDialog","fake","firstChild","tabIndex","redirectedEvent","initMouseEvent","screenX","screenY","clientX","clientY","ctrlKey","altKey","metaKey","relatedTarget","focus_","findFocusableElementWithin","hostElement","Element","elems","updateZIndex","dialogZ","backdropZ","pushDialog","invalid","ok","opacity","webkitOverflowScrolling","createsStackingContext","warn","needsCentering","nextSibling","opt_returnValue","closeEvent","topValue","styleSheets","styleSheet","cssRules","j","rule","selectedNodes","selectorText","cssTop","cssBottom","bottom","isInlinePositionSetByStylesheet","HTMLDialogElement","forceRegisterDialog","pendingDialogStack","checkDOM","checkDOM_","overlay","forwardTab_","handleKey_","handleFocus_","zIndexLow_","zIndexHigh_","mo_","records","rec","removedNodes","DialogManager","blockDocument","childList","subtree","unblockDocument","disconnect","updateStacking","dpi","containedByTopDialog_","candidate","composedPath","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","keyCode","cancelEvent","allowed","unshift","splice","testForm","method","methodDescriptor","getOwnPropertyDescriptor","realGet","realSet","offsetX","offsetY","nativeFormSubmit","submit","regeneratorAsync","regeneratorAsyncGen","regeneratorKeys","regeneratorValues","_regeneratorRuntime","abrupt","delegateYield","resultName","finish","_t","sent","wrap","isGeneratorFunction","mark","awrap","async","isNaN","pictureElement","_asyncToGenerator","_callee","_context","decode","complete","naturalWidth","once","_x","LazyLoadImages","lazyloadSrcs","srcObserver","IntersectionObserver","isIntersecting","childSources","getElementsByTagName","childSource","unobserve","rootMargin","toString","test","arrayWithoutHoles","iterableToArray","nonIterableSpread","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function"],"mappings":"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","file":"storiesPortal.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/assets/dist/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 123);\n","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export function getControllerElements(searchString = '', attributeName = 'data-controller', parentElement = document) {\r\n const elements = parentElement.querySelectorAll(`[${attributeName}]`);\r\n const result = [];\r\n\r\n elements.forEach(element => {\r\n const attributeValue = element.getAttribute(attributeName);\r\n const attributeValues = attributeValue.split(' ');\r\n\r\n if (attributeValues.includes(searchString)) {\r\n result.push(element);\r\n }\r\n });\r\n\r\n return result;\r\n}\r\n\r\nexport function getContollerTargets(searchString = '', parentElement = document) {\r\n return getControllerElements(searchString, 'data-target', parentElement);\r\n}\r\n\r\nexport function getContollerTarget(searchString = '', parentElement = document) {\r\n return getControllerElements(searchString, 'data-target', parentElement)[0];\r\n}","import { getControllerElements, getContollerTargets } from '../../helpers';\r\n\r\nclass SiteHeader {\r\n constructor(element) {\r\n this.element = element;\r\n this.headerContainer = this.element.querySelector('.stories-portal-site-header-container');\r\n this.mobileStack = [];\r\n this.findTargets();\r\n this.scrollThreshold = 1;\r\n this.watchScroll();\r\n this.handleScroll();\r\n const styles = getComputedStyle(this.element);\r\n this.mediaQuery = styles.getPropertyValue('--stories-portal-site-header__media-query__min');\r\n\r\n if (this.mediaQuery) {\r\n this.watchMediaQuery();\r\n }\r\n\r\n this.mobileToggleTargets.forEach(button => {\r\n button.addEventListener('click', (e) => this.toggleMobile(e))\r\n });\r\n this.mobileOpenTargets.forEach(button => {\r\n button.addEventListener('click', (e) => this.openMobileScreen(e))\r\n });\r\n this.mobileBackTargets.forEach(button => {\r\n button.addEventListener('click', () => this.mobileGoBack())\r\n });\r\n this.desktopMenuTargets.forEach(menu => {\r\n menu.addEventListener('mouseover', (e) => this.setDesktopActiveSection(menu, e));\r\n menu.addEventListener('focusin', (e) => this.setDesktopActiveSection(menu, e));\r\n menu.addEventListener('click', (e) => this.handleDesktopTriggerClick(menu, e));\r\n menu.addEventListener('keydown', (e) => this.handleDesktopPanelKeydown(menu, e));\r\n });\r\n document.addEventListener(\"keydown\", (e) => this.esc(e));\r\n\r\n this.closeMobile();\r\n }\r\n findTargets() {\r\n this.targets().forEach(target => {\r\n const elements = getContollerTargets(`site-header.${target}`, this.element);\r\n this[target + 'Targets'] = elements;\r\n });\r\n }\r\n targets() {\r\n return [\r\n 'mobileToggle',\r\n 'mobileNav',\r\n 'mobileScreen',\r\n 'mobileOpen',\r\n 'mobileBack',\r\n 'desktopMenu',\r\n ];\r\n }\r\n\r\n watchScroll() {\r\n let isCheckingScroll = false;\r\n\r\n document.addEventListener(\"scroll\", (event) => {\r\n if (!isCheckingScroll) {\r\n window.requestAnimationFrame(() => {\r\n this.handleScroll();\r\n isCheckingScroll = false;\r\n });\r\n isCheckingScroll = true;\r\n }\r\n }, { passive: true });\r\n }\r\n\r\n handleScroll() {\r\n const scrollPosition = window.pageYOffset || document.documentElement.scrollTop;\r\n this.element.classList.toggle('stuck', scrollPosition > this.scrollThreshold);\r\n document.body.classList.toggle('site-header-stuck', scrollPosition > this.scrollThreshold);\r\n }\r\n\r\n watchMediaQuery() {\r\n const mediaQuery = window.matchMedia(`(min-width: ${this.mediaQuery})`);\r\n mediaQuery.addEventListener('change', () => {\r\n // Crossing the breakpoint flips several transitioned properties (slide transforms,\r\n // opacity/visibility) at once - suppress transitions for one frame so the reset doesn't jitter\r\n this.element.classList.add('is-resizing');\r\n this.closeMobile();\r\n this.element.offsetHeight; // Force reflow so transition: none is committed before it's removed\r\n requestAnimationFrame(() => {\r\n this.element.classList.remove('is-resizing');\r\n });\r\n });\r\n }\r\n\r\n isMobile() {\r\n return this.mediaQuery ? !window.matchMedia(`(min-width: ${this.mediaQuery})`).matches : false;\r\n }\r\n\r\n // --- Mobile drill-down (flat sibling screens, path stack) ---\r\n\r\n toggleMobile(e) {\r\n const button = e.currentTarget;\r\n const isOpen = button.getAttribute('aria-expanded') === 'true';\r\n\r\n this.closeMobile();\r\n\r\n if (!isOpen) {\r\n button.setAttribute('aria-expanded', 'true');\r\n this.element.classList.add('is-mobile-open');\r\n this.setPageInert(true);\r\n this.renderMobileScreens();\r\n this.lockScroll();\r\n }\r\n }\r\n\r\n openMobileScreen(e) {\r\n const path = e.currentTarget.dataset.opens;\r\n\r\n if (!path) {\r\n return;\r\n }\r\n\r\n this.mobileStack = path.split('.');\r\n this.renderMobileScreens();\r\n }\r\n\r\n mobileGoBack() {\r\n if (this.mobileStack.length) {\r\n this.mobileStack.pop();\r\n }\r\n this.renderMobileScreens();\r\n }\r\n\r\n closeMobile() {\r\n this.element.classList.remove('is-mobile-open');\r\n this.mobileToggleTargets.forEach(button => {\r\n button.setAttribute('aria-expanded', 'false');\r\n });\r\n this.mobileStack = [];\r\n this.renderMobileScreens();\r\n this.setPageInert(false);\r\n this.unlockScroll();\r\n }\r\n\r\n lockScroll() {\r\n this.scrollY = window.scrollY;\r\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\r\n\r\n document.documentElement.style.setProperty('--scroll-lock-offset', `-${this.scrollY}px`);\r\n document.documentElement.style.setProperty('--scroll-lock-scrollbar-width', `${Math.max(scrollbarWidth, 0)}px`);\r\n document.documentElement.classList.add('is-scroll-locked');\r\n }\r\n\r\n unlockScroll() {\r\n if (!document.documentElement.classList.contains('is-scroll-locked')) {\r\n return;\r\n }\r\n\r\n document.documentElement.classList.remove('is-scroll-locked');\r\n window.scrollTo(0, this.scrollY || 0);\r\n }\r\n\r\n renderMobileScreens() {\r\n const stack = this.mobileStack;\r\n const isOpen = this.element.classList.contains('is-mobile-open');\r\n const activePaths = new Set();\r\n\r\n this.mobileScreenTargets.forEach(screen => {\r\n const path = screen.dataset.path ? screen.dataset.path.split('.') : [];\r\n const matchesStack = path.every((segment, i) => segment === stack[i]);\r\n const isActive = matchesStack && path.length === stack.length;\r\n const isPrevious = matchesStack && path.length < stack.length;\r\n const state = isActive ? 'active' : isPrevious ? 'previous' : 'ahead';\r\n\r\n screen.dataset.state = state;\r\n screen.toggleAttribute('inert', !isActive);\r\n\r\n if (isActive) {\r\n screen.scrollTop = 0;\r\n activePaths.add(screen.dataset.path);\r\n }\r\n });\r\n\r\n this.mobileOpenTargets.forEach(button => {\r\n button.setAttribute('aria-expanded', String(activePaths.has(button.dataset.opens)));\r\n });\r\n\r\n this.mobileNavTargets.forEach(nav => {\r\n nav.toggleAttribute('inert', !isOpen);\r\n });\r\n }\r\n\r\n esc(e) {\r\n if (e.which === 27) {\r\n this.closeMobile();\r\n }\r\n }\r\n\r\n setInert(container, exceptions, isInert) {\r\n if (!container) {\r\n return;\r\n }\r\n\r\n Array.from(container.children).forEach(child => {\r\n if (!exceptions.includes(child)) {\r\n child.toggleAttribute('inert', isInert);\r\n }\r\n });\r\n }\r\n\r\n setPageInert(isInert) {\r\n if (isInert && !this.isMobile()) {\r\n return;\r\n }\r\n\r\n this.setInert(document.body, [this.element], isInert);\r\n this.setInert(this.headerContainer, [...this.mobileToggleTargets, ...this.mobileNavTargets], isInert);\r\n }\r\n\r\n // --- Desktop aside <-> mega-nav content hover/focus matching ---\r\n // Delegated on the shared &__mega-nav wrapper so it works for both the aside triggers and\r\n // hovering/focusing into the revealed content itself, without a bounded index range. \r\n // Leaves whichever content is currently active alone rather than clearing it - the first section with content is marked active by default\r\n setDesktopActiveSection(menu, e) {\r\n const trigger = e.target.closest('[data-section-index]');\r\n\r\n if (!trigger) {\r\n return;\r\n }\r\n\r\n this.activateDesktopSection(menu, trigger.dataset.sectionIndex);\r\n }\r\n\r\n activateDesktopSection(menu, index) {\r\n menu.querySelectorAll('.stories-desktop-nav__aside-trigger[data-section-index], .stories-desktop-nav__mega-nav-content').forEach(content => {\r\n const isActive = content.dataset.sectionIndex === index;\r\n content.classList.toggle('is-active', isActive);\r\n\r\n const button = content.querySelector('.stories-desktop-nav__aside-trigger-button');\r\n if (button) {\r\n button.setAttribute('aria-expanded', String(isActive));\r\n }\r\n });\r\n }\r\n\r\n getDesktopPanelFocusables(panel) {\r\n return Array.from(panel.querySelectorAll('a[href], button:not([disabled])'));\r\n }\r\n\r\n handleDesktopTriggerClick(menu, e) {\r\n const button = e.target.closest('.stories-desktop-nav__aside-trigger-button');\r\n\r\n if (!button) {\r\n return;\r\n }\r\n\r\n this.setDesktopActiveSection(menu, e);\r\n\r\n // detail is 0 for keyboard activation (Enter/Space) - the panels all follow the aside in the DOM,\r\n // so without moving focus only the last section's panel is reachable by Tab\r\n if (e.detail === 0) {\r\n const panel = document.getElementById(button.getAttribute('aria-controls'));\r\n const [firstFocusable] = panel ? this.getDesktopPanelFocusables(panel) : [];\r\n\r\n if (firstFocusable) {\r\n firstFocusable.focus();\r\n }\r\n }\r\n }\r\n\r\n handleDesktopPanelKeydown(menu, e) {\r\n if (e.key !== 'Tab' || !e.shiftKey) {\r\n return;\r\n }\r\n\r\n const panel = e.target.closest('.stories-desktop-nav__mega-nav-content');\r\n\r\n if (!panel || this.getDesktopPanelFocusables(panel)[0] !== e.target) {\r\n return;\r\n }\r\n\r\n const button = menu.querySelector(`.stories-desktop-nav__aside-trigger-button[aria-controls=\"${panel.id}\"]`);\r\n\r\n if (button) {\r\n e.preventDefault();\r\n button.focus();\r\n }\r\n }\r\n\r\n findTargetElementIndex(targetElement, targetArray) {\r\n return targetArray.findIndex(target => target.contains(targetElement));\r\n }\r\n}\r\nexport default function () {\r\n getControllerElements('site-header').forEach(element => {\r\n new SiteHeader(element);\r\n });\r\n};\r\n","import { getControllerElements, getContollerTarget } from '../../helpers';\r\nimport dialogPolyfill from 'dialog-polyfill';\r\n\r\nclass SiteHeaderSearch {\r\n constructor(element) {\r\n this.element = element;\r\n dialogPolyfill.registerDialog(this.element);\r\n this.findTargets();\r\n\r\n this.openTarget.addEventListener('click', () => {\r\n this.element.showModal();\r\n this.openTarget.setAttribute('aria-expanded', true);\r\n });\r\n this.closeTarget.addEventListener('click', () => {\r\n this.element.close();\r\n });\r\n this.element.addEventListener('close', () => {\r\n this.openTarget.setAttribute('aria-expanded', false);\r\n });\r\n // Native light-dismiss (closedby=\"any\") isn't supported everywhere yet -\r\n // this fallback closes on any click that lands on the dialog element\r\n // itself (i.e. the ::backdrop area), never on a child inside it.\r\n this.element.addEventListener('click', (event) => {\r\n if (event.target === event.currentTarget) this.element.close();\r\n });\r\n }\r\n findTargets() {\r\n this.targets().forEach(target => {\r\n const elements = getContollerTarget(`site-header-search.${target}`, this.element);\r\n this[target + 'Target'] = elements;\r\n });\r\n this.openTarget = document.querySelector('[data-target=\"site-header-search.open\"]');\r\n }\r\n targets() {\r\n return [\r\n 'close'\r\n ];\r\n }\r\n}\r\nexport default function () {\r\n getControllerElements('site-header-search').forEach(element => {\r\n new SiteHeaderSearch(element);\r\n });\r\n};","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*!\n * Splide.js\n * Version : 4.1.4\n * License : MIT\n * Copyright: 2022 Naotoshi Fujita\n */\nvar MEDIA_PREFERS_REDUCED_MOTION = \"(prefers-reduced-motion: reduce)\";\nvar CREATED = 1;\nvar MOUNTED = 2;\nvar IDLE = 3;\nvar MOVING = 4;\nvar SCROLLING = 5;\nvar DRAGGING = 6;\nvar DESTROYED = 7;\nvar STATES = {\n CREATED: CREATED,\n MOUNTED: MOUNTED,\n IDLE: IDLE,\n MOVING: MOVING,\n SCROLLING: SCROLLING,\n DRAGGING: DRAGGING,\n DESTROYED: DESTROYED\n};\n\nfunction empty(array) {\n array.length = 0;\n}\n\nfunction slice(arrayLike, start, end) {\n return Array.prototype.slice.call(arrayLike, start, end);\n}\n\nfunction apply(func) {\n return func.bind.apply(func, [null].concat(slice(arguments, 1)));\n}\n\nvar nextTick = setTimeout;\n\nvar noop = function noop() {};\n\nfunction raf(func) {\n return requestAnimationFrame(func);\n}\n\nfunction typeOf(type, subject) {\n return typeof subject === type;\n}\n\nfunction isObject(subject) {\n return !isNull(subject) && typeOf(\"object\", subject);\n}\n\nvar isArray = Array.isArray;\nvar isFunction = apply(typeOf, \"function\");\nvar isString = apply(typeOf, \"string\");\nvar isUndefined = apply(typeOf, \"undefined\");\n\nfunction isNull(subject) {\n return subject === null;\n}\n\nfunction isHTMLElement(subject) {\n try {\n return subject instanceof (subject.ownerDocument.defaultView || window).HTMLElement;\n } catch (e) {\n return false;\n }\n}\n\nfunction toArray(value) {\n return isArray(value) ? value : [value];\n}\n\nfunction forEach(values, iteratee) {\n toArray(values).forEach(iteratee);\n}\n\nfunction includes(array, value) {\n return array.indexOf(value) > -1;\n}\n\nfunction push(array, items) {\n array.push.apply(array, toArray(items));\n return array;\n}\n\nfunction toggleClass(elm, classes, add) {\n if (elm) {\n forEach(classes, function (name) {\n if (name) {\n elm.classList[add ? \"add\" : \"remove\"](name);\n }\n });\n }\n}\n\nfunction addClass(elm, classes) {\n toggleClass(elm, isString(classes) ? classes.split(\" \") : classes, true);\n}\n\nfunction append(parent, children) {\n forEach(children, parent.appendChild.bind(parent));\n}\n\nfunction before(nodes, ref) {\n forEach(nodes, function (node) {\n var parent = (ref || node).parentNode;\n\n if (parent) {\n parent.insertBefore(node, ref);\n }\n });\n}\n\nfunction matches(elm, selector) {\n return isHTMLElement(elm) && (elm[\"msMatchesSelector\"] || elm.matches).call(elm, selector);\n}\n\nfunction children(parent, selector) {\n var children2 = parent ? slice(parent.children) : [];\n return selector ? children2.filter(function (child) {\n return matches(child, selector);\n }) : children2;\n}\n\nfunction child(parent, selector) {\n return selector ? children(parent, selector)[0] : parent.firstElementChild;\n}\n\nvar ownKeys = Object.keys;\n\nfunction forOwn(object, iteratee, right) {\n if (object) {\n (right ? ownKeys(object).reverse() : ownKeys(object)).forEach(function (key) {\n key !== \"__proto__\" && iteratee(object[key], key);\n });\n }\n\n return object;\n}\n\nfunction assign(object) {\n slice(arguments, 1).forEach(function (source) {\n forOwn(source, function (value, key) {\n object[key] = source[key];\n });\n });\n return object;\n}\n\nfunction merge(object) {\n slice(arguments, 1).forEach(function (source) {\n forOwn(source, function (value, key) {\n if (isArray(value)) {\n object[key] = value.slice();\n } else if (isObject(value)) {\n object[key] = merge({}, isObject(object[key]) ? object[key] : {}, value);\n } else {\n object[key] = value;\n }\n });\n });\n return object;\n}\n\nfunction omit(object, keys) {\n forEach(keys || ownKeys(object), function (key) {\n delete object[key];\n });\n}\n\nfunction removeAttribute(elms, attrs) {\n forEach(elms, function (elm) {\n forEach(attrs, function (attr) {\n elm && elm.removeAttribute(attr);\n });\n });\n}\n\nfunction setAttribute(elms, attrs, value) {\n if (isObject(attrs)) {\n forOwn(attrs, function (value2, name) {\n setAttribute(elms, name, value2);\n });\n } else {\n forEach(elms, function (elm) {\n isNull(value) || value === \"\" ? removeAttribute(elm, attrs) : elm.setAttribute(attrs, String(value));\n });\n }\n}\n\nfunction create(tag, attrs, parent) {\n var elm = document.createElement(tag);\n\n if (attrs) {\n isString(attrs) ? addClass(elm, attrs) : setAttribute(elm, attrs);\n }\n\n parent && append(parent, elm);\n return elm;\n}\n\nfunction style(elm, prop, value) {\n if (isUndefined(value)) {\n return getComputedStyle(elm)[prop];\n }\n\n if (!isNull(value)) {\n elm.style[prop] = \"\" + value;\n }\n}\n\nfunction display(elm, display2) {\n style(elm, \"display\", display2);\n}\n\nfunction focus(elm) {\n elm[\"setActive\"] && elm[\"setActive\"]() || elm.focus({\n preventScroll: true\n });\n}\n\nfunction getAttribute(elm, attr) {\n return elm.getAttribute(attr);\n}\n\nfunction hasClass(elm, className) {\n return elm && elm.classList.contains(className);\n}\n\nfunction rect(target) {\n return target.getBoundingClientRect();\n}\n\nfunction remove(nodes) {\n forEach(nodes, function (node) {\n if (node && node.parentNode) {\n node.parentNode.removeChild(node);\n }\n });\n}\n\nfunction parseHtml(html) {\n return child(new DOMParser().parseFromString(html, \"text/html\").body);\n}\n\nfunction prevent(e, stopPropagation) {\n e.preventDefault();\n\n if (stopPropagation) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n}\n\nfunction query(parent, selector) {\n return parent && parent.querySelector(selector);\n}\n\nfunction queryAll(parent, selector) {\n return selector ? slice(parent.querySelectorAll(selector)) : [];\n}\n\nfunction removeClass(elm, classes) {\n toggleClass(elm, classes, false);\n}\n\nfunction timeOf(e) {\n return e.timeStamp;\n}\n\nfunction unit(value) {\n return isString(value) ? value : value ? value + \"px\" : \"\";\n}\n\nvar PROJECT_CODE = \"splide\";\nvar DATA_ATTRIBUTE = \"data-\" + PROJECT_CODE;\n\nfunction assert(condition, message) {\n if (!condition) {\n throw new Error(\"[\" + PROJECT_CODE + \"] \" + (message || \"\"));\n }\n}\n\nvar min = Math.min,\n max = Math.max,\n floor = Math.floor,\n ceil = Math.ceil,\n abs = Math.abs;\n\nfunction approximatelyEqual(x, y, epsilon) {\n return abs(x - y) < epsilon;\n}\n\nfunction between(number, x, y, exclusive) {\n var minimum = min(x, y);\n var maximum = max(x, y);\n return exclusive ? minimum < number && number < maximum : minimum <= number && number <= maximum;\n}\n\nfunction clamp(number, x, y) {\n var minimum = min(x, y);\n var maximum = max(x, y);\n return min(max(minimum, number), maximum);\n}\n\nfunction sign(x) {\n return +(x > 0) - +(x < 0);\n}\n\nfunction camelToKebab(string) {\n return string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\n\nfunction format(string, replacements) {\n forEach(replacements, function (replacement) {\n string = string.replace(\"%s\", \"\" + replacement);\n });\n return string;\n}\n\nfunction pad(number) {\n return number < 10 ? \"0\" + number : \"\" + number;\n}\n\nvar ids = {};\n\nfunction uniqueId(prefix) {\n return \"\" + prefix + pad(ids[prefix] = (ids[prefix] || 0) + 1);\n}\n\nfunction EventBinder() {\n var listeners = [];\n\n function bind(targets, events, callback, options) {\n forEachEvent(targets, events, function (target, event, namespace) {\n var isEventTarget = (\"addEventListener\" in target);\n var remover = isEventTarget ? target.removeEventListener.bind(target, event, callback, options) : target[\"removeListener\"].bind(target, callback);\n isEventTarget ? target.addEventListener(event, callback, options) : target[\"addListener\"](callback);\n listeners.push([target, event, namespace, callback, remover]);\n });\n }\n\n function unbind(targets, events, callback) {\n forEachEvent(targets, events, function (target, event, namespace) {\n listeners = listeners.filter(function (listener) {\n if (listener[0] === target && listener[1] === event && listener[2] === namespace && (!callback || listener[3] === callback)) {\n listener[4]();\n return false;\n }\n\n return true;\n });\n });\n }\n\n function dispatch(target, type, detail) {\n var e;\n var bubbles = true;\n\n if (typeof CustomEvent === \"function\") {\n e = new CustomEvent(type, {\n bubbles: bubbles,\n detail: detail\n });\n } else {\n e = document.createEvent(\"CustomEvent\");\n e.initCustomEvent(type, bubbles, false, detail);\n }\n\n target.dispatchEvent(e);\n return e;\n }\n\n function forEachEvent(targets, events, iteratee) {\n forEach(targets, function (target) {\n target && forEach(events, function (events2) {\n events2.split(\" \").forEach(function (eventNS) {\n var fragment = eventNS.split(\".\");\n iteratee(target, fragment[0], fragment[1]);\n });\n });\n });\n }\n\n function destroy() {\n listeners.forEach(function (data) {\n data[4]();\n });\n empty(listeners);\n }\n\n return {\n bind: bind,\n unbind: unbind,\n dispatch: dispatch,\n destroy: destroy\n };\n}\n\nvar EVENT_MOUNTED = \"mounted\";\nvar EVENT_READY = \"ready\";\nvar EVENT_MOVE = \"move\";\nvar EVENT_MOVED = \"moved\";\nvar EVENT_CLICK = \"click\";\nvar EVENT_ACTIVE = \"active\";\nvar EVENT_INACTIVE = \"inactive\";\nvar EVENT_VISIBLE = \"visible\";\nvar EVENT_HIDDEN = \"hidden\";\nvar EVENT_REFRESH = \"refresh\";\nvar EVENT_UPDATED = \"updated\";\nvar EVENT_RESIZE = \"resize\";\nvar EVENT_RESIZED = \"resized\";\nvar EVENT_DRAG = \"drag\";\nvar EVENT_DRAGGING = \"dragging\";\nvar EVENT_DRAGGED = \"dragged\";\nvar EVENT_SCROLL = \"scroll\";\nvar EVENT_SCROLLED = \"scrolled\";\nvar EVENT_OVERFLOW = \"overflow\";\nvar EVENT_DESTROY = \"destroy\";\nvar EVENT_ARROWS_MOUNTED = \"arrows:mounted\";\nvar EVENT_ARROWS_UPDATED = \"arrows:updated\";\nvar EVENT_PAGINATION_MOUNTED = \"pagination:mounted\";\nvar EVENT_PAGINATION_UPDATED = \"pagination:updated\";\nvar EVENT_NAVIGATION_MOUNTED = \"navigation:mounted\";\nvar EVENT_AUTOPLAY_PLAY = \"autoplay:play\";\nvar EVENT_AUTOPLAY_PLAYING = \"autoplay:playing\";\nvar EVENT_AUTOPLAY_PAUSE = \"autoplay:pause\";\nvar EVENT_LAZYLOAD_LOADED = \"lazyload:loaded\";\nvar EVENT_SLIDE_KEYDOWN = \"sk\";\nvar EVENT_SHIFTED = \"sh\";\nvar EVENT_END_INDEX_CHANGED = \"ei\";\n\nfunction EventInterface(Splide2) {\n var bus = Splide2 ? Splide2.event.bus : document.createDocumentFragment();\n var binder = EventBinder();\n\n function on(events, callback) {\n binder.bind(bus, toArray(events).join(\" \"), function (e) {\n callback.apply(callback, isArray(e.detail) ? e.detail : []);\n });\n }\n\n function emit(event) {\n binder.dispatch(bus, event, slice(arguments, 1));\n }\n\n if (Splide2) {\n Splide2.event.on(EVENT_DESTROY, binder.destroy);\n }\n\n return assign(binder, {\n bus: bus,\n on: on,\n off: apply(binder.unbind, bus),\n emit: emit\n });\n}\n\nfunction RequestInterval(interval, onInterval, onUpdate, limit) {\n var now = Date.now;\n var startTime;\n var rate = 0;\n var id;\n var paused = true;\n var count = 0;\n\n function update() {\n if (!paused) {\n rate = interval ? min((now() - startTime) / interval, 1) : 1;\n onUpdate && onUpdate(rate);\n\n if (rate >= 1) {\n onInterval();\n startTime = now();\n\n if (limit && ++count >= limit) {\n return pause();\n }\n }\n\n id = raf(update);\n }\n }\n\n function start(resume) {\n resume || cancel();\n startTime = now() - (resume ? rate * interval : 0);\n paused = false;\n id = raf(update);\n }\n\n function pause() {\n paused = true;\n }\n\n function rewind() {\n startTime = now();\n rate = 0;\n\n if (onUpdate) {\n onUpdate(rate);\n }\n }\n\n function cancel() {\n id && cancelAnimationFrame(id);\n rate = 0;\n id = 0;\n paused = true;\n }\n\n function set(time) {\n interval = time;\n }\n\n function isPaused() {\n return paused;\n }\n\n return {\n start: start,\n rewind: rewind,\n pause: pause,\n cancel: cancel,\n set: set,\n isPaused: isPaused\n };\n}\n\nfunction State(initialState) {\n var state = initialState;\n\n function set(value) {\n state = value;\n }\n\n function is(states) {\n return includes(toArray(states), state);\n }\n\n return {\n set: set,\n is: is\n };\n}\n\nfunction Throttle(func, duration) {\n var interval = RequestInterval(duration || 0, func, null, 1);\n return function () {\n interval.isPaused() && interval.start();\n };\n}\n\nfunction Media(Splide2, Components2, options) {\n var state = Splide2.state;\n var breakpoints = options.breakpoints || {};\n var reducedMotion = options.reducedMotion || {};\n var binder = EventBinder();\n var queries = [];\n\n function setup() {\n var isMin = options.mediaQuery === \"min\";\n ownKeys(breakpoints).sort(function (n, m) {\n return isMin ? +n - +m : +m - +n;\n }).forEach(function (key) {\n register(breakpoints[key], \"(\" + (isMin ? \"min\" : \"max\") + \"-width:\" + key + \"px)\");\n });\n register(reducedMotion, MEDIA_PREFERS_REDUCED_MOTION);\n update();\n }\n\n function destroy(completely) {\n if (completely) {\n binder.destroy();\n }\n }\n\n function register(options2, query) {\n var queryList = matchMedia(query);\n binder.bind(queryList, \"change\", update);\n queries.push([options2, queryList]);\n }\n\n function update() {\n var destroyed = state.is(DESTROYED);\n var direction = options.direction;\n var merged = queries.reduce(function (merged2, entry) {\n return merge(merged2, entry[1].matches ? entry[0] : {});\n }, {});\n omit(options);\n set(merged);\n\n if (options.destroy) {\n Splide2.destroy(options.destroy === \"completely\");\n } else if (destroyed) {\n destroy(true);\n Splide2.mount();\n } else {\n direction !== options.direction && Splide2.refresh();\n }\n }\n\n function reduce(enable) {\n if (matchMedia(MEDIA_PREFERS_REDUCED_MOTION).matches) {\n enable ? merge(options, reducedMotion) : omit(options, ownKeys(reducedMotion));\n }\n }\n\n function set(opts, base, notify) {\n merge(options, opts);\n base && merge(Object.getPrototypeOf(options), opts);\n\n if (notify || !state.is(CREATED)) {\n Splide2.emit(EVENT_UPDATED, options);\n }\n }\n\n return {\n setup: setup,\n destroy: destroy,\n reduce: reduce,\n set: set\n };\n}\n\nvar ARROW = \"Arrow\";\nvar ARROW_LEFT = ARROW + \"Left\";\nvar ARROW_RIGHT = ARROW + \"Right\";\nvar ARROW_UP = ARROW + \"Up\";\nvar ARROW_DOWN = ARROW + \"Down\";\nvar LTR = \"ltr\";\nvar RTL = \"rtl\";\nvar TTB = \"ttb\";\nvar ORIENTATION_MAP = {\n width: [\"height\"],\n left: [\"top\", \"right\"],\n right: [\"bottom\", \"left\"],\n x: [\"y\"],\n X: [\"Y\"],\n Y: [\"X\"],\n ArrowLeft: [ARROW_UP, ARROW_RIGHT],\n ArrowRight: [ARROW_DOWN, ARROW_LEFT]\n};\n\nfunction Direction(Splide2, Components2, options) {\n function resolve(prop, axisOnly, direction) {\n direction = direction || options.direction;\n var index = direction === RTL && !axisOnly ? 1 : direction === TTB ? 0 : -1;\n return ORIENTATION_MAP[prop] && ORIENTATION_MAP[prop][index] || prop.replace(/width|left|right/i, function (match, offset) {\n var replacement = ORIENTATION_MAP[match.toLowerCase()][index] || match;\n return offset > 0 ? replacement.charAt(0).toUpperCase() + replacement.slice(1) : replacement;\n });\n }\n\n function orient(value) {\n return value * (options.direction === RTL ? 1 : -1);\n }\n\n return {\n resolve: resolve,\n orient: orient\n };\n}\n\nvar ROLE = \"role\";\nvar TAB_INDEX = \"tabindex\";\nvar DISABLED = \"disabled\";\nvar ARIA_PREFIX = \"aria-\";\nvar ARIA_CONTROLS = ARIA_PREFIX + \"controls\";\nvar ARIA_CURRENT = ARIA_PREFIX + \"current\";\nvar ARIA_SELECTED = ARIA_PREFIX + \"selected\";\nvar ARIA_LABEL = ARIA_PREFIX + \"label\";\nvar ARIA_LABELLEDBY = ARIA_PREFIX + \"labelledby\";\nvar ARIA_HIDDEN = ARIA_PREFIX + \"hidden\";\nvar ARIA_ORIENTATION = ARIA_PREFIX + \"orientation\";\nvar ARIA_ROLEDESCRIPTION = ARIA_PREFIX + \"roledescription\";\nvar ARIA_LIVE = ARIA_PREFIX + \"live\";\nvar ARIA_BUSY = ARIA_PREFIX + \"busy\";\nvar ARIA_ATOMIC = ARIA_PREFIX + \"atomic\";\nvar ALL_ATTRIBUTES = [ROLE, TAB_INDEX, DISABLED, ARIA_CONTROLS, ARIA_CURRENT, ARIA_LABEL, ARIA_LABELLEDBY, ARIA_HIDDEN, ARIA_ORIENTATION, ARIA_ROLEDESCRIPTION];\nvar CLASS_PREFIX = PROJECT_CODE + \"__\";\nvar STATUS_CLASS_PREFIX = \"is-\";\nvar CLASS_ROOT = PROJECT_CODE;\nvar CLASS_TRACK = CLASS_PREFIX + \"track\";\nvar CLASS_LIST = CLASS_PREFIX + \"list\";\nvar CLASS_SLIDE = CLASS_PREFIX + \"slide\";\nvar CLASS_CLONE = CLASS_SLIDE + \"--clone\";\nvar CLASS_CONTAINER = CLASS_SLIDE + \"__container\";\nvar CLASS_ARROWS = CLASS_PREFIX + \"arrows\";\nvar CLASS_ARROW = CLASS_PREFIX + \"arrow\";\nvar CLASS_ARROW_PREV = CLASS_ARROW + \"--prev\";\nvar CLASS_ARROW_NEXT = CLASS_ARROW + \"--next\";\nvar CLASS_PAGINATION = CLASS_PREFIX + \"pagination\";\nvar CLASS_PAGINATION_PAGE = CLASS_PAGINATION + \"__page\";\nvar CLASS_PROGRESS = CLASS_PREFIX + \"progress\";\nvar CLASS_PROGRESS_BAR = CLASS_PROGRESS + \"__bar\";\nvar CLASS_TOGGLE = CLASS_PREFIX + \"toggle\";\nvar CLASS_TOGGLE_PLAY = CLASS_TOGGLE + \"__play\";\nvar CLASS_TOGGLE_PAUSE = CLASS_TOGGLE + \"__pause\";\nvar CLASS_SPINNER = CLASS_PREFIX + \"spinner\";\nvar CLASS_SR = CLASS_PREFIX + \"sr\";\nvar CLASS_INITIALIZED = STATUS_CLASS_PREFIX + \"initialized\";\nvar CLASS_ACTIVE = STATUS_CLASS_PREFIX + \"active\";\nvar CLASS_PREV = STATUS_CLASS_PREFIX + \"prev\";\nvar CLASS_NEXT = STATUS_CLASS_PREFIX + \"next\";\nvar CLASS_VISIBLE = STATUS_CLASS_PREFIX + \"visible\";\nvar CLASS_LOADING = STATUS_CLASS_PREFIX + \"loading\";\nvar CLASS_FOCUS_IN = STATUS_CLASS_PREFIX + \"focus-in\";\nvar CLASS_OVERFLOW = STATUS_CLASS_PREFIX + \"overflow\";\nvar STATUS_CLASSES = [CLASS_ACTIVE, CLASS_VISIBLE, CLASS_PREV, CLASS_NEXT, CLASS_LOADING, CLASS_FOCUS_IN, CLASS_OVERFLOW];\nvar CLASSES = {\n slide: CLASS_SLIDE,\n clone: CLASS_CLONE,\n arrows: CLASS_ARROWS,\n arrow: CLASS_ARROW,\n prev: CLASS_ARROW_PREV,\n next: CLASS_ARROW_NEXT,\n pagination: CLASS_PAGINATION,\n page: CLASS_PAGINATION_PAGE,\n spinner: CLASS_SPINNER\n};\n\nfunction closest(from, selector) {\n if (isFunction(from.closest)) {\n return from.closest(selector);\n }\n\n var elm = from;\n\n while (elm && elm.nodeType === 1) {\n if (matches(elm, selector)) {\n break;\n }\n\n elm = elm.parentElement;\n }\n\n return elm;\n}\n\nvar FRICTION = 5;\nvar LOG_INTERVAL = 200;\nvar POINTER_DOWN_EVENTS = \"touchstart mousedown\";\nvar POINTER_MOVE_EVENTS = \"touchmove mousemove\";\nvar POINTER_UP_EVENTS = \"touchend touchcancel mouseup click\";\n\nfunction Elements(Splide2, Components2, options) {\n var _EventInterface = EventInterface(Splide2),\n on = _EventInterface.on,\n bind = _EventInterface.bind;\n\n var root = Splide2.root;\n var i18n = options.i18n;\n var elements = {};\n var slides = [];\n var rootClasses = [];\n var trackClasses = [];\n var track;\n var list;\n var isUsingKey;\n\n function setup() {\n collect();\n init();\n update();\n }\n\n function mount() {\n on(EVENT_REFRESH, destroy);\n on(EVENT_REFRESH, setup);\n on(EVENT_UPDATED, update);\n bind(document, POINTER_DOWN_EVENTS + \" keydown\", function (e) {\n isUsingKey = e.type === \"keydown\";\n }, {\n capture: true\n });\n bind(root, \"focusin\", function () {\n toggleClass(root, CLASS_FOCUS_IN, !!isUsingKey);\n });\n }\n\n function destroy(completely) {\n var attrs = ALL_ATTRIBUTES.concat(\"style\");\n empty(slides);\n removeClass(root, rootClasses);\n removeClass(track, trackClasses);\n removeAttribute([track, list], attrs);\n removeAttribute(root, completely ? attrs : [\"style\", ARIA_ROLEDESCRIPTION]);\n }\n\n function update() {\n removeClass(root, rootClasses);\n removeClass(track, trackClasses);\n rootClasses = getClasses(CLASS_ROOT);\n trackClasses = getClasses(CLASS_TRACK);\n addClass(root, rootClasses);\n addClass(track, trackClasses);\n setAttribute(root, ARIA_LABEL, options.label);\n setAttribute(root, ARIA_LABELLEDBY, options.labelledby);\n }\n\n function collect() {\n track = find(\".\" + CLASS_TRACK);\n list = child(track, \".\" + CLASS_LIST);\n assert(track && list, \"A track/list element is missing.\");\n push(slides, children(list, \".\" + CLASS_SLIDE + \":not(.\" + CLASS_CLONE + \")\"));\n forOwn({\n arrows: CLASS_ARROWS,\n pagination: CLASS_PAGINATION,\n prev: CLASS_ARROW_PREV,\n next: CLASS_ARROW_NEXT,\n bar: CLASS_PROGRESS_BAR,\n toggle: CLASS_TOGGLE\n }, function (className, key) {\n elements[key] = find(\".\" + className);\n });\n assign(elements, {\n root: root,\n track: track,\n list: list,\n slides: slides\n });\n }\n\n function init() {\n var id = root.id || uniqueId(PROJECT_CODE);\n var role = options.role;\n root.id = id;\n track.id = track.id || id + \"-track\";\n list.id = list.id || id + \"-list\";\n\n if (!getAttribute(root, ROLE) && root.tagName !== \"SECTION\" && role) {\n setAttribute(root, ROLE, role);\n }\n\n setAttribute(root, ARIA_ROLEDESCRIPTION, i18n.carousel);\n setAttribute(list, ROLE, \"presentation\");\n }\n\n function find(selector) {\n var elm = query(root, selector);\n return elm && closest(elm, \".\" + CLASS_ROOT) === root ? elm : void 0;\n }\n\n function getClasses(base) {\n return [base + \"--\" + options.type, base + \"--\" + options.direction, options.drag && base + \"--draggable\", options.isNavigation && base + \"--nav\", base === CLASS_ROOT && CLASS_ACTIVE];\n }\n\n return assign(elements, {\n setup: setup,\n mount: mount,\n destroy: destroy\n });\n}\n\nvar SLIDE = \"slide\";\nvar LOOP = \"loop\";\nvar FADE = \"fade\";\n\nfunction Slide$1(Splide2, index, slideIndex, slide) {\n var event = EventInterface(Splide2);\n var on = event.on,\n emit = event.emit,\n bind = event.bind;\n var Components = Splide2.Components,\n root = Splide2.root,\n options = Splide2.options;\n var isNavigation = options.isNavigation,\n updateOnMove = options.updateOnMove,\n i18n = options.i18n,\n pagination = options.pagination,\n slideFocus = options.slideFocus;\n var resolve = Components.Direction.resolve;\n var styles = getAttribute(slide, \"style\");\n var label = getAttribute(slide, ARIA_LABEL);\n var isClone = slideIndex > -1;\n var container = child(slide, \".\" + CLASS_CONTAINER);\n var destroyed;\n\n function mount() {\n if (!isClone) {\n slide.id = root.id + \"-slide\" + pad(index + 1);\n setAttribute(slide, ROLE, pagination ? \"tabpanel\" : \"group\");\n setAttribute(slide, ARIA_ROLEDESCRIPTION, i18n.slide);\n setAttribute(slide, ARIA_LABEL, label || format(i18n.slideLabel, [index + 1, Splide2.length]));\n }\n\n listen();\n }\n\n function listen() {\n bind(slide, \"click\", apply(emit, EVENT_CLICK, self));\n bind(slide, \"keydown\", apply(emit, EVENT_SLIDE_KEYDOWN, self));\n on([EVENT_MOVED, EVENT_SHIFTED, EVENT_SCROLLED], update);\n on(EVENT_NAVIGATION_MOUNTED, initNavigation);\n\n if (updateOnMove) {\n on(EVENT_MOVE, onMove);\n }\n }\n\n function destroy() {\n destroyed = true;\n event.destroy();\n removeClass(slide, STATUS_CLASSES);\n removeAttribute(slide, ALL_ATTRIBUTES);\n setAttribute(slide, \"style\", styles);\n setAttribute(slide, ARIA_LABEL, label || \"\");\n }\n\n function initNavigation() {\n var controls = Splide2.splides.map(function (target) {\n var Slide2 = target.splide.Components.Slides.getAt(index);\n return Slide2 ? Slide2.slide.id : \"\";\n }).join(\" \");\n setAttribute(slide, ARIA_LABEL, format(i18n.slideX, (isClone ? slideIndex : index) + 1));\n setAttribute(slide, ARIA_CONTROLS, controls);\n setAttribute(slide, ROLE, slideFocus ? \"button\" : \"\");\n slideFocus && removeAttribute(slide, ARIA_ROLEDESCRIPTION);\n }\n\n function onMove() {\n if (!destroyed) {\n update();\n }\n }\n\n function update() {\n if (!destroyed) {\n var curr = Splide2.index;\n updateActivity();\n updateVisibility();\n toggleClass(slide, CLASS_PREV, index === curr - 1);\n toggleClass(slide, CLASS_NEXT, index === curr + 1);\n }\n }\n\n function updateActivity() {\n var active = isActive();\n\n if (active !== hasClass(slide, CLASS_ACTIVE)) {\n toggleClass(slide, CLASS_ACTIVE, active);\n setAttribute(slide, ARIA_CURRENT, isNavigation && active || \"\");\n emit(active ? EVENT_ACTIVE : EVENT_INACTIVE, self);\n }\n }\n\n function updateVisibility() {\n var visible = isVisible();\n var hidden = !visible && (!isActive() || isClone);\n\n if (!Splide2.state.is([MOVING, SCROLLING])) {\n setAttribute(slide, ARIA_HIDDEN, hidden || \"\");\n }\n\n setAttribute(queryAll(slide, options.focusableNodes || \"\"), TAB_INDEX, hidden ? -1 : \"\");\n\n if (slideFocus) {\n setAttribute(slide, TAB_INDEX, hidden ? -1 : 0);\n }\n\n if (visible !== hasClass(slide, CLASS_VISIBLE)) {\n toggleClass(slide, CLASS_VISIBLE, visible);\n emit(visible ? EVENT_VISIBLE : EVENT_HIDDEN, self);\n }\n\n if (!visible && document.activeElement === slide) {\n var Slide2 = Components.Slides.getAt(Splide2.index);\n Slide2 && focus(Slide2.slide);\n }\n }\n\n function style$1(prop, value, useContainer) {\n style(useContainer && container || slide, prop, value);\n }\n\n function isActive() {\n var curr = Splide2.index;\n return curr === index || options.cloneStatus && curr === slideIndex;\n }\n\n function isVisible() {\n if (Splide2.is(FADE)) {\n return isActive();\n }\n\n var trackRect = rect(Components.Elements.track);\n var slideRect = rect(slide);\n var left = resolve(\"left\", true);\n var right = resolve(\"right\", true);\n return floor(trackRect[left]) <= ceil(slideRect[left]) && floor(slideRect[right]) <= ceil(trackRect[right]);\n }\n\n function isWithin(from, distance) {\n var diff = abs(from - index);\n\n if (!isClone && (options.rewind || Splide2.is(LOOP))) {\n diff = min(diff, Splide2.length - diff);\n }\n\n return diff <= distance;\n }\n\n var self = {\n index: index,\n slideIndex: slideIndex,\n slide: slide,\n container: container,\n isClone: isClone,\n mount: mount,\n destroy: destroy,\n update: update,\n style: style$1,\n isWithin: isWithin\n };\n return self;\n}\n\nfunction Slides(Splide2, Components2, options) {\n var _EventInterface2 = EventInterface(Splide2),\n on = _EventInterface2.on,\n emit = _EventInterface2.emit,\n bind = _EventInterface2.bind;\n\n var _Components2$Elements = Components2.Elements,\n slides = _Components2$Elements.slides,\n list = _Components2$Elements.list;\n var Slides2 = [];\n\n function mount() {\n init();\n on(EVENT_REFRESH, destroy);\n on(EVENT_REFRESH, init);\n }\n\n function init() {\n slides.forEach(function (slide, index) {\n register(slide, index, -1);\n });\n }\n\n function destroy() {\n forEach$1(function (Slide2) {\n Slide2.destroy();\n });\n empty(Slides2);\n }\n\n function update() {\n forEach$1(function (Slide2) {\n Slide2.update();\n });\n }\n\n function register(slide, index, slideIndex) {\n var object = Slide$1(Splide2, index, slideIndex, slide);\n object.mount();\n Slides2.push(object);\n Slides2.sort(function (Slide1, Slide2) {\n return Slide1.index - Slide2.index;\n });\n }\n\n function get(excludeClones) {\n return excludeClones ? filter(function (Slide2) {\n return !Slide2.isClone;\n }) : Slides2;\n }\n\n function getIn(page) {\n var Controller = Components2.Controller;\n var index = Controller.toIndex(page);\n var max = Controller.hasFocus() ? 1 : options.perPage;\n return filter(function (Slide2) {\n return between(Slide2.index, index, index + max - 1);\n });\n }\n\n function getAt(index) {\n return filter(index)[0];\n }\n\n function add(items, index) {\n forEach(items, function (slide) {\n if (isString(slide)) {\n slide = parseHtml(slide);\n }\n\n if (isHTMLElement(slide)) {\n var ref = slides[index];\n ref ? before(slide, ref) : append(list, slide);\n addClass(slide, options.classes.slide);\n observeImages(slide, apply(emit, EVENT_RESIZE));\n }\n });\n emit(EVENT_REFRESH);\n }\n\n function remove$1(matcher) {\n remove(filter(matcher).map(function (Slide2) {\n return Slide2.slide;\n }));\n emit(EVENT_REFRESH);\n }\n\n function forEach$1(iteratee, excludeClones) {\n get(excludeClones).forEach(iteratee);\n }\n\n function filter(matcher) {\n return Slides2.filter(isFunction(matcher) ? matcher : function (Slide2) {\n return isString(matcher) ? matches(Slide2.slide, matcher) : includes(toArray(matcher), Slide2.index);\n });\n }\n\n function style(prop, value, useContainer) {\n forEach$1(function (Slide2) {\n Slide2.style(prop, value, useContainer);\n });\n }\n\n function observeImages(elm, callback) {\n var images = queryAll(elm, \"img\");\n var length = images.length;\n\n if (length) {\n images.forEach(function (img) {\n bind(img, \"load error\", function () {\n if (! --length) {\n callback();\n }\n });\n });\n } else {\n callback();\n }\n }\n\n function getLength(excludeClones) {\n return excludeClones ? slides.length : Slides2.length;\n }\n\n function isEnough() {\n return Slides2.length > options.perPage;\n }\n\n return {\n mount: mount,\n destroy: destroy,\n update: update,\n register: register,\n get: get,\n getIn: getIn,\n getAt: getAt,\n add: add,\n remove: remove$1,\n forEach: forEach$1,\n filter: filter,\n style: style,\n getLength: getLength,\n isEnough: isEnough\n };\n}\n\nfunction Layout(Splide2, Components2, options) {\n var _EventInterface3 = EventInterface(Splide2),\n on = _EventInterface3.on,\n bind = _EventInterface3.bind,\n emit = _EventInterface3.emit;\n\n var Slides = Components2.Slides;\n var resolve = Components2.Direction.resolve;\n var _Components2$Elements2 = Components2.Elements,\n root = _Components2$Elements2.root,\n track = _Components2$Elements2.track,\n list = _Components2$Elements2.list;\n var getAt = Slides.getAt,\n styleSlides = Slides.style;\n var vertical;\n var rootRect;\n var overflow;\n\n function mount() {\n init();\n bind(window, \"resize load\", Throttle(apply(emit, EVENT_RESIZE)));\n on([EVENT_UPDATED, EVENT_REFRESH], init);\n on(EVENT_RESIZE, resize);\n }\n\n function init() {\n vertical = options.direction === TTB;\n style(root, \"maxWidth\", unit(options.width));\n style(track, resolve(\"paddingLeft\"), cssPadding(false));\n style(track, resolve(\"paddingRight\"), cssPadding(true));\n resize(true);\n }\n\n function resize(force) {\n var newRect = rect(root);\n\n if (force || rootRect.width !== newRect.width || rootRect.height !== newRect.height) {\n style(track, \"height\", cssTrackHeight());\n styleSlides(resolve(\"marginRight\"), unit(options.gap));\n styleSlides(\"width\", cssSlideWidth());\n styleSlides(\"height\", cssSlideHeight(), true);\n rootRect = newRect;\n emit(EVENT_RESIZED);\n\n if (overflow !== (overflow = isOverflow())) {\n toggleClass(root, CLASS_OVERFLOW, overflow);\n emit(EVENT_OVERFLOW, overflow);\n }\n }\n }\n\n function cssPadding(right) {\n var padding = options.padding;\n var prop = resolve(right ? \"right\" : \"left\");\n return padding && unit(padding[prop] || (isObject(padding) ? 0 : padding)) || \"0px\";\n }\n\n function cssTrackHeight() {\n var height = \"\";\n\n if (vertical) {\n height = cssHeight();\n assert(height, \"height or heightRatio is missing.\");\n height = \"calc(\" + height + \" - \" + cssPadding(false) + \" - \" + cssPadding(true) + \")\";\n }\n\n return height;\n }\n\n function cssHeight() {\n return unit(options.height || rect(list).width * options.heightRatio);\n }\n\n function cssSlideWidth() {\n return options.autoWidth ? null : unit(options.fixedWidth) || (vertical ? \"\" : cssSlideSize());\n }\n\n function cssSlideHeight() {\n return unit(options.fixedHeight) || (vertical ? options.autoHeight ? null : cssSlideSize() : cssHeight());\n }\n\n function cssSlideSize() {\n var gap = unit(options.gap);\n return \"calc((100%\" + (gap && \" + \" + gap) + \")/\" + (options.perPage || 1) + (gap && \" - \" + gap) + \")\";\n }\n\n function listSize() {\n return rect(list)[resolve(\"width\")];\n }\n\n function slideSize(index, withoutGap) {\n var Slide = getAt(index || 0);\n return Slide ? rect(Slide.slide)[resolve(\"width\")] + (withoutGap ? 0 : getGap()) : 0;\n }\n\n function totalSize(index, withoutGap) {\n var Slide = getAt(index);\n\n if (Slide) {\n var right = rect(Slide.slide)[resolve(\"right\")];\n var left = rect(list)[resolve(\"left\")];\n return abs(right - left) + (withoutGap ? 0 : getGap());\n }\n\n return 0;\n }\n\n function sliderSize(withoutGap) {\n return totalSize(Splide2.length - 1) - totalSize(0) + slideSize(0, withoutGap);\n }\n\n function getGap() {\n var Slide = getAt(0);\n return Slide && parseFloat(style(Slide.slide, resolve(\"marginRight\"))) || 0;\n }\n\n function getPadding(right) {\n return parseFloat(style(track, resolve(\"padding\" + (right ? \"Right\" : \"Left\")))) || 0;\n }\n\n function isOverflow() {\n return Splide2.is(FADE) || sliderSize(true) > listSize();\n }\n\n return {\n mount: mount,\n resize: resize,\n listSize: listSize,\n slideSize: slideSize,\n sliderSize: sliderSize,\n totalSize: totalSize,\n getPadding: getPadding,\n isOverflow: isOverflow\n };\n}\n\nvar MULTIPLIER = 2;\n\nfunction Clones(Splide2, Components2, options) {\n var event = EventInterface(Splide2);\n var on = event.on;\n var Elements = Components2.Elements,\n Slides = Components2.Slides;\n var resolve = Components2.Direction.resolve;\n var clones = [];\n var cloneCount;\n\n function mount() {\n on(EVENT_REFRESH, remount);\n on([EVENT_UPDATED, EVENT_RESIZE], observe);\n\n if (cloneCount = computeCloneCount()) {\n generate(cloneCount);\n Components2.Layout.resize(true);\n }\n }\n\n function remount() {\n destroy();\n mount();\n }\n\n function destroy() {\n remove(clones);\n empty(clones);\n event.destroy();\n }\n\n function observe() {\n var count = computeCloneCount();\n\n if (cloneCount !== count) {\n if (cloneCount < count || !count) {\n event.emit(EVENT_REFRESH);\n }\n }\n }\n\n function generate(count) {\n var slides = Slides.get().slice();\n var length = slides.length;\n\n if (length) {\n while (slides.length < count) {\n push(slides, slides);\n }\n\n push(slides.slice(-count), slides.slice(0, count)).forEach(function (Slide, index) {\n var isHead = index < count;\n var clone = cloneDeep(Slide.slide, index);\n isHead ? before(clone, slides[0].slide) : append(Elements.list, clone);\n push(clones, clone);\n Slides.register(clone, index - count + (isHead ? 0 : length), Slide.index);\n });\n }\n }\n\n function cloneDeep(elm, index) {\n var clone = elm.cloneNode(true);\n addClass(clone, options.classes.clone);\n clone.id = Splide2.root.id + \"-clone\" + pad(index + 1);\n return clone;\n }\n\n function computeCloneCount() {\n var clones2 = options.clones;\n\n if (!Splide2.is(LOOP)) {\n clones2 = 0;\n } else if (isUndefined(clones2)) {\n var fixedSize = options[resolve(\"fixedWidth\")] && Components2.Layout.slideSize(0);\n var fixedCount = fixedSize && ceil(rect(Elements.track)[resolve(\"width\")] / fixedSize);\n clones2 = fixedCount || options[resolve(\"autoWidth\")] && Splide2.length || options.perPage * MULTIPLIER;\n }\n\n return clones2;\n }\n\n return {\n mount: mount,\n destroy: destroy\n };\n}\n\nfunction Move(Splide2, Components2, options) {\n var _EventInterface4 = EventInterface(Splide2),\n on = _EventInterface4.on,\n emit = _EventInterface4.emit;\n\n var set = Splide2.state.set;\n var _Components2$Layout = Components2.Layout,\n slideSize = _Components2$Layout.slideSize,\n getPadding = _Components2$Layout.getPadding,\n totalSize = _Components2$Layout.totalSize,\n listSize = _Components2$Layout.listSize,\n sliderSize = _Components2$Layout.sliderSize;\n var _Components2$Directio = Components2.Direction,\n resolve = _Components2$Directio.resolve,\n orient = _Components2$Directio.orient;\n var _Components2$Elements3 = Components2.Elements,\n list = _Components2$Elements3.list,\n track = _Components2$Elements3.track;\n var Transition;\n\n function mount() {\n Transition = Components2.Transition;\n on([EVENT_MOUNTED, EVENT_RESIZED, EVENT_UPDATED, EVENT_REFRESH], reposition);\n }\n\n function reposition() {\n if (!Components2.Controller.isBusy()) {\n Components2.Scroll.cancel();\n jump(Splide2.index);\n Components2.Slides.update();\n }\n }\n\n function move(dest, index, prev, callback) {\n if (dest !== index && canShift(dest > prev)) {\n cancel();\n translate(shift(getPosition(), dest > prev), true);\n }\n\n set(MOVING);\n emit(EVENT_MOVE, index, prev, dest);\n Transition.start(index, function () {\n set(IDLE);\n emit(EVENT_MOVED, index, prev, dest);\n callback && callback();\n });\n }\n\n function jump(index) {\n translate(toPosition(index, true));\n }\n\n function translate(position, preventLoop) {\n if (!Splide2.is(FADE)) {\n var destination = preventLoop ? position : loop(position);\n style(list, \"transform\", \"translate\" + resolve(\"X\") + \"(\" + destination + \"px)\");\n position !== destination && emit(EVENT_SHIFTED);\n }\n }\n\n function loop(position) {\n if (Splide2.is(LOOP)) {\n var index = toIndex(position);\n var exceededMax = index > Components2.Controller.getEnd();\n var exceededMin = index < 0;\n\n if (exceededMin || exceededMax) {\n position = shift(position, exceededMax);\n }\n }\n\n return position;\n }\n\n function shift(position, backwards) {\n var excess = position - getLimit(backwards);\n var size = sliderSize();\n position -= orient(size * (ceil(abs(excess) / size) || 1)) * (backwards ? 1 : -1);\n return position;\n }\n\n function cancel() {\n translate(getPosition(), true);\n Transition.cancel();\n }\n\n function toIndex(position) {\n var Slides = Components2.Slides.get();\n var index = 0;\n var minDistance = Infinity;\n\n for (var i = 0; i < Slides.length; i++) {\n var slideIndex = Slides[i].index;\n var distance = abs(toPosition(slideIndex, true) - position);\n\n if (distance <= minDistance) {\n minDistance = distance;\n index = slideIndex;\n } else {\n break;\n }\n }\n\n return index;\n }\n\n function toPosition(index, trimming) {\n var position = orient(totalSize(index - 1) - offset(index));\n return trimming ? trim(position) : position;\n }\n\n function getPosition() {\n var left = resolve(\"left\");\n return rect(list)[left] - rect(track)[left] + orient(getPadding(false));\n }\n\n function trim(position) {\n if (options.trimSpace && Splide2.is(SLIDE)) {\n position = clamp(position, 0, orient(sliderSize(true) - listSize()));\n }\n\n return position;\n }\n\n function offset(index) {\n var focus = options.focus;\n return focus === \"center\" ? (listSize() - slideSize(index, true)) / 2 : +focus * slideSize(index) || 0;\n }\n\n function getLimit(max) {\n return toPosition(max ? Components2.Controller.getEnd() : 0, !!options.trimSpace);\n }\n\n function canShift(backwards) {\n var shifted = orient(shift(getPosition(), backwards));\n return backwards ? shifted >= 0 : shifted <= list[resolve(\"scrollWidth\")] - rect(track)[resolve(\"width\")];\n }\n\n function exceededLimit(max, position) {\n position = isUndefined(position) ? getPosition() : position;\n var exceededMin = max !== true && orient(position) < orient(getLimit(false));\n var exceededMax = max !== false && orient(position) > orient(getLimit(true));\n return exceededMin || exceededMax;\n }\n\n return {\n mount: mount,\n move: move,\n jump: jump,\n translate: translate,\n shift: shift,\n cancel: cancel,\n toIndex: toIndex,\n toPosition: toPosition,\n getPosition: getPosition,\n getLimit: getLimit,\n exceededLimit: exceededLimit,\n reposition: reposition\n };\n}\n\nfunction Controller(Splide2, Components2, options) {\n var _EventInterface5 = EventInterface(Splide2),\n on = _EventInterface5.on,\n emit = _EventInterface5.emit;\n\n var Move = Components2.Move;\n var getPosition = Move.getPosition,\n getLimit = Move.getLimit,\n toPosition = Move.toPosition;\n var _Components2$Slides = Components2.Slides,\n isEnough = _Components2$Slides.isEnough,\n getLength = _Components2$Slides.getLength;\n var omitEnd = options.omitEnd;\n var isLoop = Splide2.is(LOOP);\n var isSlide = Splide2.is(SLIDE);\n var getNext = apply(getAdjacent, false);\n var getPrev = apply(getAdjacent, true);\n var currIndex = options.start || 0;\n var endIndex;\n var prevIndex = currIndex;\n var slideCount;\n var perMove;\n var perPage;\n\n function mount() {\n init();\n on([EVENT_UPDATED, EVENT_REFRESH, EVENT_END_INDEX_CHANGED], init);\n on(EVENT_RESIZED, onResized);\n }\n\n function init() {\n slideCount = getLength(true);\n perMove = options.perMove;\n perPage = options.perPage;\n endIndex = getEnd();\n var index = clamp(currIndex, 0, omitEnd ? endIndex : slideCount - 1);\n\n if (index !== currIndex) {\n currIndex = index;\n Move.reposition();\n }\n }\n\n function onResized() {\n if (endIndex !== getEnd()) {\n emit(EVENT_END_INDEX_CHANGED);\n }\n }\n\n function go(control, allowSameIndex, callback) {\n if (!isBusy()) {\n var dest = parse(control);\n var index = loop(dest);\n\n if (index > -1 && (allowSameIndex || index !== currIndex)) {\n setIndex(index);\n Move.move(dest, index, prevIndex, callback);\n }\n }\n }\n\n function scroll(destination, duration, snap, callback) {\n Components2.Scroll.scroll(destination, duration, snap, function () {\n var index = loop(Move.toIndex(getPosition()));\n setIndex(omitEnd ? min(index, endIndex) : index);\n callback && callback();\n });\n }\n\n function parse(control) {\n var index = currIndex;\n\n if (isString(control)) {\n var _ref = control.match(/([+\\-<>])(\\d+)?/) || [],\n indicator = _ref[1],\n number = _ref[2];\n\n if (indicator === \"+\" || indicator === \"-\") {\n index = computeDestIndex(currIndex + +(\"\" + indicator + (+number || 1)), currIndex);\n } else if (indicator === \">\") {\n index = number ? toIndex(+number) : getNext(true);\n } else if (indicator === \"<\") {\n index = getPrev(true);\n }\n } else {\n index = isLoop ? control : clamp(control, 0, endIndex);\n }\n\n return index;\n }\n\n function getAdjacent(prev, destination) {\n var number = perMove || (hasFocus() ? 1 : perPage);\n var dest = computeDestIndex(currIndex + number * (prev ? -1 : 1), currIndex, !(perMove || hasFocus()));\n\n if (dest === -1 && isSlide) {\n if (!approximatelyEqual(getPosition(), getLimit(!prev), 1)) {\n return prev ? 0 : endIndex;\n }\n }\n\n return destination ? dest : loop(dest);\n }\n\n function computeDestIndex(dest, from, snapPage) {\n if (isEnough() || hasFocus()) {\n var index = computeMovableDestIndex(dest);\n\n if (index !== dest) {\n from = dest;\n dest = index;\n snapPage = false;\n }\n\n if (dest < 0 || dest > endIndex) {\n if (!perMove && (between(0, dest, from, true) || between(endIndex, from, dest, true))) {\n dest = toIndex(toPage(dest));\n } else {\n if (isLoop) {\n dest = snapPage ? dest < 0 ? -(slideCount % perPage || perPage) : slideCount : dest;\n } else if (options.rewind) {\n dest = dest < 0 ? endIndex : 0;\n } else {\n dest = -1;\n }\n }\n } else {\n if (snapPage && dest !== from) {\n dest = toIndex(toPage(from) + (dest < from ? -1 : 1));\n }\n }\n } else {\n dest = -1;\n }\n\n return dest;\n }\n\n function computeMovableDestIndex(dest) {\n if (isSlide && options.trimSpace === \"move\" && dest !== currIndex) {\n var position = getPosition();\n\n while (position === toPosition(dest, true) && between(dest, 0, Splide2.length - 1, !options.rewind)) {\n dest < currIndex ? --dest : ++dest;\n }\n }\n\n return dest;\n }\n\n function loop(index) {\n return isLoop ? (index + slideCount) % slideCount || 0 : index;\n }\n\n function getEnd() {\n var end = slideCount - (hasFocus() || isLoop && perMove ? 1 : perPage);\n\n while (omitEnd && end-- > 0) {\n if (toPosition(slideCount - 1, true) !== toPosition(end, true)) {\n end++;\n break;\n }\n }\n\n return clamp(end, 0, slideCount - 1);\n }\n\n function toIndex(page) {\n return clamp(hasFocus() ? page : perPage * page, 0, endIndex);\n }\n\n function toPage(index) {\n return hasFocus() ? min(index, endIndex) : floor((index >= endIndex ? slideCount - 1 : index) / perPage);\n }\n\n function toDest(destination) {\n var closest = Move.toIndex(destination);\n return isSlide ? clamp(closest, 0, endIndex) : closest;\n }\n\n function setIndex(index) {\n if (index !== currIndex) {\n prevIndex = currIndex;\n currIndex = index;\n }\n }\n\n function getIndex(prev) {\n return prev ? prevIndex : currIndex;\n }\n\n function hasFocus() {\n return !isUndefined(options.focus) || options.isNavigation;\n }\n\n function isBusy() {\n return Splide2.state.is([MOVING, SCROLLING]) && !!options.waitForTransition;\n }\n\n return {\n mount: mount,\n go: go,\n scroll: scroll,\n getNext: getNext,\n getPrev: getPrev,\n getAdjacent: getAdjacent,\n getEnd: getEnd,\n setIndex: setIndex,\n getIndex: getIndex,\n toIndex: toIndex,\n toPage: toPage,\n toDest: toDest,\n hasFocus: hasFocus,\n isBusy: isBusy\n };\n}\n\nvar XML_NAME_SPACE = \"http://www.w3.org/2000/svg\";\nvar PATH = \"m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z\";\nvar SIZE = 40;\n\nfunction Arrows(Splide2, Components2, options) {\n var event = EventInterface(Splide2);\n var on = event.on,\n bind = event.bind,\n emit = event.emit;\n var classes = options.classes,\n i18n = options.i18n;\n var Elements = Components2.Elements,\n Controller = Components2.Controller;\n var placeholder = Elements.arrows,\n track = Elements.track;\n var wrapper = placeholder;\n var prev = Elements.prev;\n var next = Elements.next;\n var created;\n var wrapperClasses;\n var arrows = {};\n\n function mount() {\n init();\n on(EVENT_UPDATED, remount);\n }\n\n function remount() {\n destroy();\n mount();\n }\n\n function init() {\n var enabled = options.arrows;\n\n if (enabled && !(prev && next)) {\n createArrows();\n }\n\n if (prev && next) {\n assign(arrows, {\n prev: prev,\n next: next\n });\n display(wrapper, enabled ? \"\" : \"none\");\n addClass(wrapper, wrapperClasses = CLASS_ARROWS + \"--\" + options.direction);\n\n if (enabled) {\n listen();\n update();\n setAttribute([prev, next], ARIA_CONTROLS, track.id);\n emit(EVENT_ARROWS_MOUNTED, prev, next);\n }\n }\n }\n\n function destroy() {\n event.destroy();\n removeClass(wrapper, wrapperClasses);\n\n if (created) {\n remove(placeholder ? [prev, next] : wrapper);\n prev = next = null;\n } else {\n removeAttribute([prev, next], ALL_ATTRIBUTES);\n }\n }\n\n function listen() {\n on([EVENT_MOUNTED, EVENT_MOVED, EVENT_REFRESH, EVENT_SCROLLED, EVENT_END_INDEX_CHANGED], update);\n bind(next, \"click\", apply(go, \">\"));\n bind(prev, \"click\", apply(go, \"<\"));\n }\n\n function go(control) {\n Controller.go(control, true);\n }\n\n function createArrows() {\n wrapper = placeholder || create(\"div\", classes.arrows);\n prev = createArrow(true);\n next = createArrow(false);\n created = true;\n append(wrapper, [prev, next]);\n !placeholder && before(wrapper, track);\n }\n\n function createArrow(prev2) {\n var arrow = \"\";\n };\n\n _proto3.html = function html() {\n var _this$config = this.config,\n rootClass = _this$config.rootClass,\n listTag = _this$config.listTag,\n arrows = _this$config.arrows,\n beforeTrack = _this$config.beforeTrack,\n afterTrack = _this$config.afterTrack,\n slider = _this$config.slider,\n beforeSlider = _this$config.beforeSlider,\n afterSlider = _this$config.afterSlider;\n var html = \"\";\n html += \"
\";\n html += \"\";\n\n if (slider) {\n html += beforeSlider || \"\";\n html += \"
\";\n }\n\n html += beforeTrack || \"\";\n\n if (arrows) {\n html += this.renderArrows();\n }\n\n html += \"
\";\n html += \"<\" + listTag + \" class=\\\"splide__list\\\">\";\n html += this.renderSlides();\n html += \"\";\n html += \"
\";\n html += afterTrack || \"\";\n\n if (slider) {\n html += \"
\";\n html += afterSlider || \"\";\n }\n\n html += \"
\";\n return html;\n };\n\n return SplideRenderer;\n}();\n\nexport { CLASSES, CLASS_ACTIVE, CLASS_ARROW, CLASS_ARROWS, CLASS_ARROW_NEXT, CLASS_ARROW_PREV, CLASS_CLONE, CLASS_CONTAINER, CLASS_FOCUS_IN, CLASS_INITIALIZED, CLASS_LIST, CLASS_LOADING, CLASS_NEXT, CLASS_OVERFLOW, CLASS_PAGINATION, CLASS_PAGINATION_PAGE, CLASS_PREV, CLASS_PROGRESS, CLASS_PROGRESS_BAR, CLASS_ROOT, CLASS_SLIDE, CLASS_SPINNER, CLASS_SR, CLASS_TOGGLE, CLASS_TOGGLE_PAUSE, CLASS_TOGGLE_PLAY, CLASS_TRACK, CLASS_VISIBLE, DEFAULTS, EVENT_ACTIVE, EVENT_ARROWS_MOUNTED, EVENT_ARROWS_UPDATED, EVENT_AUTOPLAY_PAUSE, EVENT_AUTOPLAY_PLAY, EVENT_AUTOPLAY_PLAYING, EVENT_CLICK, EVENT_DESTROY, EVENT_DRAG, EVENT_DRAGGED, EVENT_DRAGGING, EVENT_END_INDEX_CHANGED, EVENT_HIDDEN, EVENT_INACTIVE, EVENT_LAZYLOAD_LOADED, EVENT_MOUNTED, EVENT_MOVE, EVENT_MOVED, EVENT_NAVIGATION_MOUNTED, EVENT_OVERFLOW, EVENT_PAGINATION_MOUNTED, EVENT_PAGINATION_UPDATED, EVENT_READY, EVENT_REFRESH, EVENT_RESIZE, EVENT_RESIZED, EVENT_SCROLL, EVENT_SCROLLED, EVENT_SHIFTED, EVENT_SLIDE_KEYDOWN, EVENT_UPDATED, EVENT_VISIBLE, EventBinder, EventInterface, FADE, LOOP, LTR, RTL, RequestInterval, SLIDE, STATUS_CLASSES, Splide, SplideRenderer, State, TTB, Throttle, Splide as default };\n","import { getControllerElements, getContollerTargets } from '../helpers';\r\nimport { Splide } from '@splidejs/splide';\r\n\r\nclass SliderHero {\r\n constructor(element) {\r\n this.element = element;\r\n this.findTargets();\r\n\r\n if(this.slideTargets.length > 1) {\r\n this.attachSplide();\r\n }\r\n }\r\n targets() {\r\n return [\r\n 'slide',\r\n ];\r\n }\r\n findTargets() {\r\n this.targets().forEach(target => {\r\n const elements = getContollerTargets(`slider-hero.${target}`, this.element);\r\n this[target + 'Targets'] = elements;\r\n });\r\n }\r\n attachSplide() {\r\n this.slider = new Splide(this.element, {\r\n type: 'fade',\r\n autoplay: true,\r\n pauseOnHover: false,\r\n pauseOnFocus: false,\r\n drag: true,\r\n pagination: true,\r\n arrows: true,\r\n interval: 14000,\r\n rewind: true,\r\n speed: 2000,\r\n }).mount();\r\n }\r\n}\r\nexport default function () {\r\n getControllerElements('slider-hero').forEach(element => {\r\n new SliderHero(element);\r\n });\r\n};","import { getControllerElements } from '../helpers';\r\nimport isPictureLoaded from '../../shared/isPictureLoaded';\r\n\r\nclass PictureLoaded {\r\n constructor(element) {\r\n this.element = element;\r\n this.imageTargets = this.element.querySelectorAll('picture');\r\n this.watchImageLoading();\r\n }\r\n watchImageLoading() {\r\n this.imageTargets.forEach(image => {\r\n isPictureLoaded(image).then((loaded) => {\r\n if (loaded) {\r\n image.classList.add('loaded');\r\n }\r\n });\r\n });\r\n }\r\n}\r\nexport default function () {\r\n getControllerElements('picture-loaded').forEach(element => {\r\n new PictureLoaded(element);\r\n });\r\n};\r\n","import { getControllerElements } from '../helpers';\r\nimport { Splide } from '@splidejs/splide';\r\n\r\nconst OPTIONS = {\r\n type: 'slide',\r\n autoWidth: true,\r\n perMove: 1,\r\n omitEnd: true,\r\n pagination: false,\r\n arrows: true,\r\n drag: true,\r\n rewind: false,\r\n speed: 600,\r\n};\r\n\r\nconst CONTROLLERS = ['category-carousel', 'featured-stories-carousel'];\r\n\r\nclass CarouselRow {\r\n constructor(element) {\r\n this.element = element;\r\n this.slider = new Splide(element, OPTIONS).mount();\r\n }\r\n}\r\n\r\nexport default function () {\r\n CONTROLLERS.forEach((controllerName) => {\r\n getControllerElements(controllerName).forEach((element) => new CarouselRow(element));\r\n });\r\n}\r\n","import { getControllerElements, getContollerTarget, getContollerTargets } from '../helpers';\r\n\r\nclass CategoryBrowse {\r\n constructor(element) {\r\n this.element = element;\r\n this.searchInput = getContollerTarget('category-browse.search', this.element);\r\n this.items = getContollerTargets('category-browse.item', this.element);\r\n this.noResults = getContollerTarget('category-browse.noResults', this.element);\r\n this.noResultsMessage = this.noResults?.dataset.message || '';\r\n this.resetButton = getContollerTarget('category-browse.reset', this.element);\r\n this.grid = getContollerTarget('category-browse.grid', this.element);\r\n\r\n if (this.searchInput) {\r\n this.searchInput.addEventListener('input', () => this.filter());\r\n }\r\n if (this.resetButton) {\r\n this.resetButton.addEventListener('click', () => this.reset());\r\n }\r\n }\r\n\r\n filter() {\r\n const query = this.searchInput.value.trim();\r\n const queryLower = query.toLowerCase();\r\n let visibleCount = 0;\r\n\r\n this.items.forEach((item) => {\r\n const title = this.titleFor(item);\r\n const matches = title.includes(queryLower);\r\n\r\n item.hidden = !matches;\r\n\r\n if (matches) {\r\n visibleCount += 1;\r\n }\r\n });\r\n\r\n if (this.noResults) {\r\n this.noResults.hidden = visibleCount > 0 || query === '';\r\n this.noResults.textContent = this.noResultsMessage.replace('{query}', query);\r\n }\r\n if (this.grid) {\r\n this.grid.hidden = visibleCount === 0;\r\n }\r\n }\r\n\r\n reset() {\r\n this.searchInput.value = '';\r\n this.searchInput.focus();\r\n this.filter();\r\n }\r\n\r\n titleFor(item) {\r\n const titleElement = item.querySelector('[data-title]');\r\n return (titleElement?.dataset.title || '').toLowerCase();\r\n }\r\n}\r\n\r\nexport default function () {\r\n getControllerElements('category-browse').forEach((element) => new CategoryBrowse(element));\r\n}\r\n","import { getControllerElements, getContollerTarget } from '../helpers';\r\n\r\nclass StoryVideo {\r\n constructor(element) {\r\n this.element = element;\r\n this.findTargets();\r\n \r\n this.buttonTarget.addEventListener('click', (e)=> {\r\n this.buttonTarget.style.display = 'none';\r\n this.videoTarget.src = this.videoTarget.dataset.iframeSrc;\r\n this.videoTarget.removeAttribute('data-iframe-src');\r\n });\r\n }\r\n targets() {\r\n return [\r\n 'button',\r\n 'video',\r\n ];\r\n } \r\n findTargets() {\r\n this.targets().forEach(target => {\r\n const elements = getContollerTarget(`story-video.${target}`, this.element);\r\n this[target + 'Target'] = elements;\r\n });\r\n }\r\n}\r\nexport default function () {\r\n getControllerElements('story-video').forEach(element => {\r\n new StoryVideo(element);\r\n });\r\n};","import { getControllerElements, getContollerTargets } from '../helpers';\r\n\r\nclass ShareOptions {\r\n constructor(element) {\r\n this.element = element;\r\n this.findTargets();\r\n\r\n this.buttonTargets.forEach(button => {\r\n button.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n const link = e.currentTarget;\r\n const top = window.innerHeight / 2 - 275;\r\n const left = window.innerWidth / 2 - 350;\r\n window.open(link.getAttribute(\"href\"), \"socialShareWindow\", \"height=275, width=700, top=\" + top + \", left=\" + left + \", toolbar=0, location=0, menubar=0, directories=0, scrollbars=0\");\r\n });\r\n })\r\n }\r\n targets() {\r\n return [\r\n 'button',\r\n ];\r\n }\r\n findTargets() {\r\n this.targets().forEach(target => {\r\n const elements = getContollerTargets(`share-options.${target}`, this.element);\r\n this[target + 'Targets'] = elements;\r\n });\r\n }\r\n}\r\nexport default function () {\r\n getControllerElements('share-options').forEach(element => {\r\n new ShareOptions(element);\r\n });\r\n};","import { getControllerElements, getContollerTargets } from '../helpers';\r\n\r\nclass TabNavigationSelect {\r\n constructor(element) {\r\n this.element = element;\r\n\r\n this.element.addEventListener('change', (e) => {\r\n const value = this.element.value;\r\n if (value) {\r\n window.location.href = value;\r\n }\r\n });\r\n }\r\n}\r\nexport default function () {\r\n getControllerElements('tab-navigation-select').forEach(element => {\r\n new TabNavigationSelect(element);\r\n });\r\n};","import { getControllerElements } from '../helpers';\r\n\r\n// Shows/hides a page's optional \"holding content\" (CMS block content shown\r\n// while no filter is applied - see StoriesResults.cshtml) to match each\r\n// fetched results state, mirroring the server's own showHoldingContent rule -\r\n// hidden while filters/search/paging are active, shown again once cleared.\r\nclass HoldingContent {\r\n constructor(element) {\r\n this.element = element;\r\n document.addEventListener('stories:results-updated', (event) => this.toggle(event));\r\n }\r\n\r\n toggle(event) {\r\n this.element.hidden = !event.detail?.holdingContentActive;\r\n }\r\n}\r\n\r\nexport default function () {\r\n getControllerElements('holding-content').forEach((element) => new HoldingContent(element));\r\n}\r\n","import siteHeader from './modules/globals/siteHeader';\r\nimport siteHeaderSearch from './modules/globals/siteHeaderSearch';\r\nimport sliderHero from './modules/sliderHero';\r\nimport pictureLoaded from './modules/pictureLoaded';\r\nimport carouselRow from './modules/carouselRow';\r\nimport categoryBrowse from './modules/categoryBrowse';\r\nimport storyVideo from './modules/storyVideo';\r\nimport shareOptions from './modules/shareOptions';\r\nimport tableRoles from './modules/globals/tableRoles';\r\nimport listRoles from './modules/globals/listRoles';\r\nimport tabNavigationSelect from './modules/tabNavigationSelect';\r\nimport holdingContent from './modules/holdingContent';\r\nimport lazyLoadImages from '../modules/lazyLoadImages.js';\r\n\r\nconst initialise = () => {\r\n siteHeader();\r\n siteHeaderSearch();\r\n sliderHero();\r\n pictureLoaded();\r\n carouselRow();\r\n categoryBrowse();\r\n storyVideo();\r\n shareOptions();\r\n tableRoles();\r\n listRoles();\r\n tabNavigationSelect();\r\n holdingContent();\r\n}\r\nlazyLoadImages();\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n initialise();\r\n});","// https://adrianroselli.com/2018/05/functions-to-add-aria-to-tables-and-lists.html\r\nexport default function () {\r\n try {\r\n var allTables = document.querySelectorAll('table');\r\n for (var i = 0; i < allTables.length; i++) {\r\n allTables[i].setAttribute('role', 'table');\r\n }\r\n var allCaptions = document.querySelectorAll('caption');\r\n for (var i = 0; i < allCaptions.length; i++) {\r\n allCaptions[i].setAttribute('role', 'caption');\r\n }\r\n var allRowGroups = document.querySelectorAll('thead, tbody, tfoot');\r\n for (var i = 0; i < allRowGroups.length; i++) {\r\n allRowGroups[i].setAttribute('role', 'rowgroup');\r\n }\r\n var allRows = document.querySelectorAll('tr');\r\n for (var i = 0; i < allRows.length; i++) {\r\n allRows[i].setAttribute('role', 'row');\r\n }\r\n var allCells = document.querySelectorAll('td');\r\n for (var i = 0; i < allCells.length; i++) {\r\n allCells[i].setAttribute('role', 'cell');\r\n }\r\n var allHeaders = document.querySelectorAll('th');\r\n for (var i = 0; i < allHeaders.length; i++) {\r\n allHeaders[i].setAttribute('role', 'columnheader');\r\n }\r\n // this accounts for scoped row headers\r\n var allRowHeaders = document.querySelectorAll('th[scope=row]');\r\n for (var i = 0; i < allRowHeaders.length; i++) {\r\n allRowHeaders[i].setAttribute('role', 'rowheader');\r\n }\r\n } catch (e) {\r\n console.log(\"AddTableARIA(): \" + e);\r\n }\r\n}","// https://adrianroselli.com/2018/05/functions-to-add-aria-to-tables-and-lists.html\r\nexport default function () {\r\n try {\r\n var allLists = document.querySelectorAll(\"ol, ul\");\r\n for (var i = 0; i < allLists.length; i++) {\r\n allLists[i].setAttribute(\"role\", \"list\");\r\n }\r\n var allListItems = document.querySelectorAll(\"li\");\r\n for (var i = 0; i < allListItems.length; i++) {\r\n allListItems[i].setAttribute(\"role\", \"listitem\");\r\n }\r\n var allDefLists = document.querySelectorAll(\"dl\");\r\n for (var i = 0; i < allDefLists.length; i++) {\r\n allDefLists[i].setAttribute(\"role\", \"associationlist list\");\r\n }\r\n var allDefTerms = document.querySelectorAll(\"dt\");\r\n for (var i = 0; i < allDefTerms.length; i++) {\r\n allDefTerms[i].setAttribute(\"role\", \"associationlistitemkey listitem\");\r\n }\r\n var allDefItems = document.querySelectorAll(\"dd\");\r\n for (var i = 0; i < allDefItems.length; i++) {\r\n allDefItems[i].setAttribute(\"role\", \"associationlistitemvalue listitem\");\r\n }\r\n } catch (e) {\r\n console.log(\"AddListARIA(): \" + e);\r\n }\r\n}","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction _regenerator() {\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */\n var e,\n t,\n r = \"function\" == typeof Symbol ? Symbol : {},\n n = r.iterator || \"@@iterator\",\n o = r.toStringTag || \"@@toStringTag\";\n function i(r, n, o, i) {\n var c = n && n.prototype instanceof Generator ? n : Generator,\n u = Object.create(c.prototype);\n return regeneratorDefine(u, \"_invoke\", function (r, n, o) {\n var i,\n c,\n u,\n f = 0,\n p = o || [],\n y = !1,\n G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function d(t, r) {\n return i = t, c = 0, u = e, G.n = r, a;\n }\n };\n function d(r, n) {\n for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {\n var o,\n i = p[t],\n d = G.p,\n l = i[2];\n r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));\n }\n if (o || r > 1) return a;\n throw y = !0, n;\n }\n return function (o, p, l) {\n if (f > 1) throw TypeError(\"Generator is already running\");\n for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {\n i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);\n try {\n if (f = 2, i) {\n if (c || (o = \"next\"), t = i[o]) {\n if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\");\n if (!t.done) return t;\n u = t.value, c < 2 && (c = 0);\n } else 1 === c && (t = i[\"return\"]) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1);\n i = e;\n } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;\n } catch (t) {\n i = e, c = 1, u = t;\n } finally {\n f = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r, o, i), !0), u;\n }\n var a = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {\n return this;\n }), t),\n u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), regeneratorDefine(u), regeneratorDefine(u, o, \"Generator\"), regeneratorDefine(u, n, function () {\n return this;\n }), regeneratorDefine(u, \"toString\", function () {\n return \"[object Generator]\";\n }), (module.exports = _regenerator = function _regenerator() {\n return {\n w: i,\n m: f\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e) {\n i = 0;\n }\n module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n function o(r, n) {\n _regeneratorDefine(e, r, function (e) {\n return this._invoke(r, n, e);\n });\n }\n r ? i ? i(e, r, {\n value: n,\n enumerable: !t,\n configurable: !t,\n writable: !t\n }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _regeneratorDefine(e, r, n, t);\n}\nmodule.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regenerator = require(\"./regenerator.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction AsyncIterator(t, e) {\n function n(r, o, i, f) {\n try {\n var c = t[r](o),\n u = c.value;\n return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {\n n(\"next\", t, i, f);\n }, function (t) {\n n(\"throw\", t, i, f);\n }) : e.resolve(u).then(function (t) {\n c.value = t, i(c);\n }, function (t) {\n return n(\"throw\", t, i, f);\n });\n } catch (t) {\n f(t);\n }\n }\n var r;\n this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, \"function\" == typeof Symbol && Symbol.asyncIterator || \"@asyncIterator\", function () {\n return this;\n })), regeneratorDefine(this, \"_invoke\", function (t, o, i) {\n function f() {\n return new e(function (e, r) {\n n(t, i, e, r);\n });\n }\n return r = r ? r.then(f, f) : f();\n }, !0);\n}\nmodule.exports = AsyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// nb. This is for IE10 and lower _only_.\nvar supportCustomEvent = window.CustomEvent;\nif (!supportCustomEvent || typeof supportCustomEvent === 'object') {\n supportCustomEvent = function CustomEvent(event, x) {\n x = x || {};\n var ev = document.createEvent('CustomEvent');\n ev.initCustomEvent(event, !!x.bubbles, !!x.cancelable, x.detail || null);\n return ev;\n };\n supportCustomEvent.prototype = window.Event.prototype;\n}\n\n/**\n * Dispatches the passed event to both an \"on\" handler as well as via the\n * normal dispatch operation. Does not bubble.\n *\n * @param {!EventTarget} target\n * @param {!Event} event\n * @return {boolean}\n */\nfunction safeDispatchEvent(target, event) {\n var check = 'on' + event.type.toLowerCase();\n if (typeof target[check] === 'function') {\n target[check](event);\n }\n return target.dispatchEvent(event);\n}\n\n/**\n * @param {Element} el to check for stacking context\n * @return {boolean} whether this el or its parents creates a stacking context\n */\nfunction createsStackingContext(el) {\n while (el && el !== document.body) {\n var s = window.getComputedStyle(el);\n var invalid = function(k, ok) {\n return !(s[k] === undefined || s[k] === ok);\n };\n\n if (s.opacity < 1 ||\n invalid('zIndex', 'auto') ||\n invalid('transform', 'none') ||\n invalid('mixBlendMode', 'normal') ||\n invalid('filter', 'none') ||\n invalid('perspective', 'none') ||\n s['isolation'] === 'isolate' ||\n s.position === 'fixed' ||\n s.webkitOverflowScrolling === 'touch') {\n return true;\n }\n el = el.parentElement;\n }\n return false;\n}\n\n/**\n * Finds the nearest from the passed element.\n *\n * @param {Element} el to search from\n * @return {HTMLDialogElement} dialog found\n */\nfunction findNearestDialog(el) {\n while (el) {\n if (el.localName === 'dialog') {\n return /** @type {HTMLDialogElement} */ (el);\n }\n if (el.parentElement) {\n el = el.parentElement;\n } else if (el.parentNode) {\n el = el.parentNode.host;\n } else {\n el = null;\n }\n }\n return null;\n}\n\n/**\n * Blur the specified element, as long as it's not the HTML body element.\n * This works around an IE9/10 bug - blurring the body causes Windows to\n * blur the whole application.\n *\n * @param {Element} el to blur\n */\nfunction safeBlur(el) {\n // Find the actual focused element when the active element is inside a shadow root\n while (el && el.shadowRoot && el.shadowRoot.activeElement) {\n el = el.shadowRoot.activeElement;\n }\n\n if (el && el.blur && el !== document.body) {\n el.blur();\n }\n}\n\n/**\n * @param {!NodeList} nodeList to search\n * @param {Node} node to find\n * @return {boolean} whether node is inside nodeList\n */\nfunction inNodeList(nodeList, node) {\n for (var i = 0; i < nodeList.length; ++i) {\n if (nodeList[i] === node) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {HTMLFormElement} el to check\n * @return {boolean} whether this form has method=\"dialog\"\n */\nfunction isFormMethodDialog(el) {\n if (!el || !el.hasAttribute('method')) {\n return false;\n }\n return el.getAttribute('method').toLowerCase() === 'dialog';\n}\n\n/**\n * @param {!DocumentFragment|!Element} hostElement\n * @return {?Element}\n */\nfunction findFocusableElementWithin(hostElement) {\n // Note that this is 'any focusable area'. This list is probably not exhaustive, but the\n // alternative involves stepping through and trying to focus everything.\n var opts = ['button', 'input', 'keygen', 'select', 'textarea'];\n var query = opts.map(function(el) {\n return el + ':not([disabled])';\n });\n // TODO(samthor): tabindex values that are not numeric are not focusable.\n query.push('[tabindex]:not([disabled]):not([tabindex=\"\"])'); // tabindex != \"\", not disabled\n var target = hostElement.querySelector(query.join(', '));\n\n if (!target && 'attachShadow' in Element.prototype) {\n // If we haven't found a focusable target, see if the host element contains an element\n // which has a shadowRoot.\n // Recursively search for the first focusable item in shadow roots.\n var elems = hostElement.querySelectorAll('*');\n for (var i = 0; i < elems.length; i++) {\n if (elems[i].tagName && elems[i].shadowRoot) {\n target = findFocusableElementWithin(elems[i].shadowRoot);\n if (target) {\n break;\n }\n }\n }\n }\n return target;\n}\n\n/**\n * Determines if an element is attached to the DOM.\n * @param {Element} element to check\n * @return {boolean} whether the element is in DOM\n */\nfunction isConnected(element) {\n return element.isConnected || document.body.contains(element);\n}\n\n/**\n * @param {!Event} event\n * @return {?Element}\n */\nfunction findFormSubmitter(event) {\n if (event.submitter) {\n return event.submitter;\n }\n\n var form = event.target;\n if (!(form instanceof HTMLFormElement)) {\n return null;\n }\n\n var submitter = dialogPolyfill.formSubmitter;\n if (!submitter) {\n var target = event.target;\n var root = ('getRootNode' in target && target.getRootNode() || document);\n submitter = root.activeElement;\n }\n\n if (!submitter || submitter.form !== form) {\n return null;\n }\n return submitter;\n}\n\n/**\n * @param {!Event} event\n */\nfunction maybeHandleSubmit(event) {\n if (event.defaultPrevented) {\n return;\n }\n var form = /** @type {!HTMLFormElement} */ (event.target);\n\n // We'd have a value if we clicked on an imagemap.\n var value = dialogPolyfill.imagemapUseValue;\n var submitter = findFormSubmitter(event);\n if (value === null && submitter) {\n value = submitter.value;\n }\n\n // There should always be a dialog as this handler is added specifically on them, but check just\n // in case.\n var dialog = findNearestDialog(form);\n if (!dialog) {\n return;\n }\n\n // Prefer formmethod on the button.\n var formmethod = submitter && submitter.getAttribute('formmethod') || form.getAttribute('method');\n if (formmethod !== 'dialog') {\n return;\n }\n event.preventDefault();\n\n if (value != null) {\n // nb. we explicitly check against null/undefined\n dialog.close(value);\n } else {\n dialog.close();\n }\n}\n\n/**\n * @param {!HTMLDialogElement} dialog to upgrade\n * @constructor\n */\nfunction dialogPolyfillInfo(dialog) {\n this.dialog_ = dialog;\n this.replacedStyleTop_ = false;\n this.openAsModal_ = false;\n\n // Set a11y role. Browsers that support dialog implicitly know this already.\n if (!dialog.hasAttribute('role')) {\n dialog.setAttribute('role', 'dialog');\n }\n\n dialog.show = this.show.bind(this);\n dialog.showModal = this.showModal.bind(this);\n dialog.close = this.close.bind(this);\n\n dialog.addEventListener('submit', maybeHandleSubmit, false);\n\n if (!('returnValue' in dialog)) {\n dialog.returnValue = '';\n }\n\n if ('MutationObserver' in window) {\n var mo = new MutationObserver(this.maybeHideModal.bind(this));\n mo.observe(dialog, {attributes: true, attributeFilter: ['open']});\n } else {\n // IE10 and below support. Note that DOMNodeRemoved etc fire _before_ removal. They also\n // seem to fire even if the element was removed as part of a parent removal. Use the removed\n // events to force downgrade (useful if removed/immediately added).\n var removed = false;\n var cb = function() {\n removed ? this.downgradeModal() : this.maybeHideModal();\n removed = false;\n }.bind(this);\n var timeout;\n var delayModel = function(ev) {\n if (ev.target !== dialog) { return; } // not for a child element\n var cand = 'DOMNodeRemoved';\n removed |= (ev.type.substr(0, cand.length) === cand);\n window.clearTimeout(timeout);\n timeout = window.setTimeout(cb, 0);\n };\n ['DOMAttrModified', 'DOMNodeRemoved', 'DOMNodeRemovedFromDocument'].forEach(function(name) {\n dialog.addEventListener(name, delayModel);\n });\n }\n // Note that the DOM is observed inside DialogManager while any dialog\n // is being displayed as a modal, to catch modal removal from the DOM.\n\n Object.defineProperty(dialog, 'open', {\n set: this.setOpen.bind(this),\n get: dialog.hasAttribute.bind(dialog, 'open')\n });\n\n this.backdrop_ = document.createElement('div');\n this.backdrop_.className = 'backdrop';\n this.backdrop_.addEventListener('mouseup' , this.backdropMouseEvent_.bind(this));\n this.backdrop_.addEventListener('mousedown', this.backdropMouseEvent_.bind(this));\n this.backdrop_.addEventListener('click' , this.backdropMouseEvent_.bind(this));\n}\n\ndialogPolyfillInfo.prototype = /** @type {HTMLDialogElement.prototype} */ ({\n\n get dialog() {\n return this.dialog_;\n },\n\n /**\n * Maybe remove this dialog from the modal top layer. This is called when\n * a modal dialog may no longer be tenable, e.g., when the dialog is no\n * longer open or is no longer part of the DOM.\n */\n maybeHideModal: function() {\n if (this.dialog_.hasAttribute('open') && isConnected(this.dialog_)) { return; }\n this.downgradeModal();\n },\n\n /**\n * Remove this dialog from the modal top layer, leaving it as a non-modal.\n */\n downgradeModal: function() {\n if (!this.openAsModal_) { return; }\n this.openAsModal_ = false;\n this.dialog_.style.zIndex = '';\n\n // This won't match the native exactly because if the user set top on a centered\n // polyfill dialog, that top gets thrown away when the dialog is closed. Not sure it's\n // possible to polyfill this perfectly.\n if (this.replacedStyleTop_) {\n this.dialog_.style.top = '';\n this.replacedStyleTop_ = false;\n }\n\n // Clear the backdrop and remove from the manager.\n this.backdrop_.parentNode && this.backdrop_.parentNode.removeChild(this.backdrop_);\n dialogPolyfill.dm.removeDialog(this);\n },\n\n /**\n * @param {boolean} value whether to open or close this dialog\n */\n setOpen: function(value) {\n if (value) {\n this.dialog_.hasAttribute('open') || this.dialog_.setAttribute('open', '');\n } else {\n this.dialog_.removeAttribute('open');\n this.maybeHideModal(); // nb. redundant with MutationObserver\n }\n },\n\n /**\n * Handles mouse events ('mouseup', 'mousedown', 'click') on the fake .backdrop element, redirecting them as if\n * they were on the dialog itself.\n *\n * @param {!Event} e to redirect\n */\n backdropMouseEvent_: function(e) {\n if (!this.dialog_.hasAttribute('tabindex')) {\n // Clicking on the backdrop should move the implicit cursor, even if dialog cannot be\n // focused. Create a fake thing to focus on. If the backdrop was _before_ the dialog, this\n // would not be needed - clicks would move the implicit cursor there.\n var fake = document.createElement('div');\n this.dialog_.insertBefore(fake, this.dialog_.firstChild);\n fake.tabIndex = -1;\n fake.focus();\n this.dialog_.removeChild(fake);\n } else {\n this.dialog_.focus();\n }\n\n var redirectedEvent = document.createEvent('MouseEvents');\n redirectedEvent.initMouseEvent(e.type, e.bubbles, e.cancelable, window,\n e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey,\n e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget);\n this.dialog_.dispatchEvent(redirectedEvent);\n e.stopPropagation();\n },\n\n /**\n * Focuses on the first focusable element within the dialog. This will always blur the current\n * focus, even if nothing within the dialog is found.\n */\n focus_: function() {\n // Find element with `autofocus` attribute, or fall back to the first form/tabindex control.\n var target = this.dialog_.querySelector('[autofocus]:not([disabled])');\n if (!target && this.dialog_.tabIndex >= 0) {\n target = this.dialog_;\n }\n if (!target) {\n target = findFocusableElementWithin(this.dialog_);\n }\n safeBlur(document.activeElement);\n target && target.focus();\n },\n\n /**\n * Sets the zIndex for the backdrop and dialog.\n *\n * @param {number} dialogZ\n * @param {number} backdropZ\n */\n updateZIndex: function(dialogZ, backdropZ) {\n if (dialogZ < backdropZ) {\n throw new Error('dialogZ should never be < backdropZ');\n }\n this.dialog_.style.zIndex = dialogZ;\n this.backdrop_.style.zIndex = backdropZ;\n },\n\n /**\n * Shows the dialog. If the dialog is already open, this does nothing.\n */\n show: function() {\n if (!this.dialog_.open) {\n this.setOpen(true);\n this.focus_();\n }\n },\n\n /**\n * Show this dialog modally.\n */\n showModal: function() {\n if (this.dialog_.hasAttribute('open')) {\n throw new Error('Failed to execute \\'showModal\\' on dialog: The element is already open, and therefore cannot be opened modally.');\n }\n if (!isConnected(this.dialog_)) {\n throw new Error('Failed to execute \\'showModal\\' on dialog: The element is not in a Document.');\n }\n if (!dialogPolyfill.dm.pushDialog(this)) {\n throw new Error('Failed to execute \\'showModal\\' on dialog: There are too many open modal dialogs.');\n }\n\n if (createsStackingContext(this.dialog_.parentElement)) {\n console.warn('A dialog is being shown inside a stacking context. ' +\n 'This may cause it to be unusable. For more information, see this link: ' +\n 'https://github.com/GoogleChrome/dialog-polyfill/#stacking-context');\n }\n\n this.setOpen(true);\n this.openAsModal_ = true;\n\n // Optionally center vertically, relative to the current viewport.\n if (dialogPolyfill.needsCentering(this.dialog_)) {\n dialogPolyfill.reposition(this.dialog_);\n this.replacedStyleTop_ = true;\n } else {\n this.replacedStyleTop_ = false;\n }\n\n // Insert backdrop.\n this.dialog_.parentNode.insertBefore(this.backdrop_, this.dialog_.nextSibling);\n\n // Focus on whatever inside the dialog.\n this.focus_();\n },\n\n /**\n * Closes this HTMLDialogElement. This is optional vs clearing the open\n * attribute, however this fires a 'close' event.\n *\n * @param {string=} opt_returnValue to use as the returnValue\n */\n close: function(opt_returnValue) {\n if (!this.dialog_.hasAttribute('open')) {\n throw new Error('Failed to execute \\'close\\' on dialog: The element does not have an \\'open\\' attribute, and therefore cannot be closed.');\n }\n this.setOpen(false);\n\n // Leave returnValue untouched in case it was set directly on the element\n if (opt_returnValue !== undefined) {\n this.dialog_.returnValue = opt_returnValue;\n }\n\n // Triggering \"close\" event for any attached listeners on the .\n var closeEvent = new supportCustomEvent('close', {\n bubbles: false,\n cancelable: false\n });\n safeDispatchEvent(this.dialog_, closeEvent);\n }\n\n});\n\nvar dialogPolyfill = {};\n\ndialogPolyfill.reposition = function(element) {\n var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;\n var topValue = scrollTop + (window.innerHeight - element.offsetHeight) / 2;\n element.style.top = Math.max(scrollTop, topValue) + 'px';\n};\n\ndialogPolyfill.isInlinePositionSetByStylesheet = function(element) {\n for (var i = 0; i < document.styleSheets.length; ++i) {\n var styleSheet = document.styleSheets[i];\n var cssRules = null;\n // Some browsers throw on cssRules.\n try {\n cssRules = styleSheet.cssRules;\n } catch (e) {}\n if (!cssRules) { continue; }\n for (var j = 0; j < cssRules.length; ++j) {\n var rule = cssRules[j];\n var selectedNodes = null;\n // Ignore errors on invalid selector texts.\n try {\n selectedNodes = document.querySelectorAll(rule.selectorText);\n } catch(e) {}\n if (!selectedNodes || !inNodeList(selectedNodes, element)) {\n continue;\n }\n var cssTop = rule.style.getPropertyValue('top');\n var cssBottom = rule.style.getPropertyValue('bottom');\n if ((cssTop && cssTop !== 'auto') || (cssBottom && cssBottom !== 'auto')) {\n return true;\n }\n }\n }\n return false;\n};\n\ndialogPolyfill.needsCentering = function(dialog) {\n var computedStyle = window.getComputedStyle(dialog);\n if (computedStyle.position !== 'absolute') {\n return false;\n }\n\n // We must determine whether the top/bottom specified value is non-auto. In\n // WebKit/Blink, checking computedStyle.top == 'auto' is sufficient, but\n // Firefox returns the used value. So we do this crazy thing instead: check\n // the inline style and then go through CSS rules.\n if ((dialog.style.top !== 'auto' && dialog.style.top !== '') ||\n (dialog.style.bottom !== 'auto' && dialog.style.bottom !== '')) {\n return false;\n }\n return !dialogPolyfill.isInlinePositionSetByStylesheet(dialog);\n};\n\n/**\n * @param {!Element} element to force upgrade\n */\ndialogPolyfill.forceRegisterDialog = function(element) {\n if (window.HTMLDialogElement || element.showModal) {\n console.warn('This browser already supports , the polyfill ' +\n 'may not work correctly', element);\n }\n if (element.localName !== 'dialog') {\n throw new Error('Failed to register dialog: The element is not a dialog.');\n }\n new dialogPolyfillInfo(/** @type {!HTMLDialogElement} */ (element));\n};\n\n/**\n * @param {!Element} element to upgrade, if necessary\n */\ndialogPolyfill.registerDialog = function(element) {\n if (!element.showModal) {\n dialogPolyfill.forceRegisterDialog(element);\n }\n};\n\n/**\n * @constructor\n */\ndialogPolyfill.DialogManager = function() {\n /** @type {!Array} */\n this.pendingDialogStack = [];\n\n var checkDOM = this.checkDOM_.bind(this);\n\n // The overlay is used to simulate how a modal dialog blocks the document.\n // The blocking dialog is positioned on top of the overlay, and the rest of\n // the dialogs on the pending dialog stack are positioned below it. In the\n // actual implementation, the modal dialog stacking is controlled by the\n // top layer, where z-index has no effect.\n this.overlay = document.createElement('div');\n this.overlay.className = '_dialog_overlay';\n this.overlay.addEventListener('click', function(e) {\n this.forwardTab_ = undefined;\n e.stopPropagation();\n checkDOM([]); // sanity-check DOM\n }.bind(this));\n\n this.handleKey_ = this.handleKey_.bind(this);\n this.handleFocus_ = this.handleFocus_.bind(this);\n\n this.zIndexLow_ = 100000;\n this.zIndexHigh_ = 100000 + 150;\n\n this.forwardTab_ = undefined;\n\n if ('MutationObserver' in window) {\n this.mo_ = new MutationObserver(function(records) {\n var removed = [];\n records.forEach(function(rec) {\n for (var i = 0, c; c = rec.removedNodes[i]; ++i) {\n if (!(c instanceof Element)) {\n continue;\n } else if (c.localName === 'dialog') {\n removed.push(c);\n }\n removed = removed.concat(c.querySelectorAll('dialog'));\n }\n });\n removed.length && checkDOM(removed);\n });\n }\n};\n\n/**\n * Called on the first modal dialog being shown. Adds the overlay and related\n * handlers.\n */\ndialogPolyfill.DialogManager.prototype.blockDocument = function() {\n document.documentElement.addEventListener('focus', this.handleFocus_, true);\n document.addEventListener('keydown', this.handleKey_);\n this.mo_ && this.mo_.observe(document, {childList: true, subtree: true});\n};\n\n/**\n * Called on the first modal dialog being removed, i.e., when no more modal\n * dialogs are visible.\n */\ndialogPolyfill.DialogManager.prototype.unblockDocument = function() {\n document.documentElement.removeEventListener('focus', this.handleFocus_, true);\n document.removeEventListener('keydown', this.handleKey_);\n this.mo_ && this.mo_.disconnect();\n};\n\n/**\n * Updates the stacking of all known dialogs.\n */\ndialogPolyfill.DialogManager.prototype.updateStacking = function() {\n var zIndex = this.zIndexHigh_;\n\n for (var i = 0, dpi; dpi = this.pendingDialogStack[i]; ++i) {\n dpi.updateZIndex(--zIndex, --zIndex);\n if (i === 0) {\n this.overlay.style.zIndex = --zIndex;\n }\n }\n\n // Make the overlay a sibling of the dialog itself.\n var last = this.pendingDialogStack[0];\n if (last) {\n var p = last.dialog.parentNode || document.body;\n p.appendChild(this.overlay);\n } else if (this.overlay.parentNode) {\n this.overlay.parentNode.removeChild(this.overlay);\n }\n};\n\n/**\n * @param {Element} candidate to check if contained or is the top-most modal dialog\n * @return {boolean} whether candidate is contained in top dialog\n */\ndialogPolyfill.DialogManager.prototype.containedByTopDialog_ = function(candidate) {\n while (candidate = findNearestDialog(candidate)) {\n for (var i = 0, dpi; dpi = this.pendingDialogStack[i]; ++i) {\n if (dpi.dialog === candidate) {\n return i === 0; // only valid if top-most\n }\n }\n candidate = candidate.parentElement;\n }\n return false;\n};\n\ndialogPolyfill.DialogManager.prototype.handleFocus_ = function(event) {\n var target = event.composedPath ? event.composedPath()[0] : event.target;\n\n if (this.containedByTopDialog_(target)) { return; }\n\n if (document.activeElement === document.documentElement) { return; }\n\n event.preventDefault();\n event.stopPropagation();\n safeBlur(/** @type {Element} */ (target));\n\n if (this.forwardTab_ === undefined) { return; } // move focus only from a tab key\n\n var dpi = this.pendingDialogStack[0];\n var dialog = dpi.dialog;\n var position = dialog.compareDocumentPosition(target);\n if (position & Node.DOCUMENT_POSITION_PRECEDING) {\n if (this.forwardTab_) {\n // forward\n dpi.focus_();\n } else if (target !== document.documentElement) {\n // backwards if we're not already focused on \n document.documentElement.focus();\n }\n }\n\n return false;\n};\n\ndialogPolyfill.DialogManager.prototype.handleKey_ = function(event) {\n this.forwardTab_ = undefined;\n if (event.keyCode === 27) {\n event.preventDefault();\n event.stopPropagation();\n var cancelEvent = new supportCustomEvent('cancel', {\n bubbles: false,\n cancelable: true\n });\n var dpi = this.pendingDialogStack[0];\n if (dpi && safeDispatchEvent(dpi.dialog, cancelEvent)) {\n dpi.dialog.close();\n }\n } else if (event.keyCode === 9) {\n this.forwardTab_ = !event.shiftKey;\n }\n};\n\n/**\n * Finds and downgrades any known modal dialogs that are no longer displayed. Dialogs that are\n * removed and immediately readded don't stay modal, they become normal.\n *\n * @param {!Array} removed that have definitely been removed\n */\ndialogPolyfill.DialogManager.prototype.checkDOM_ = function(removed) {\n // This operates on a clone because it may cause it to change. Each change also calls\n // updateStacking, which only actually needs to happen once. But who removes many modal dialogs\n // at a time?!\n var clone = this.pendingDialogStack.slice();\n clone.forEach(function(dpi) {\n if (removed.indexOf(dpi.dialog) !== -1) {\n dpi.downgradeModal();\n } else {\n dpi.maybeHideModal();\n }\n });\n};\n\n/**\n * @param {!dialogPolyfillInfo} dpi\n * @return {boolean} whether the dialog was allowed\n */\ndialogPolyfill.DialogManager.prototype.pushDialog = function(dpi) {\n var allowed = (this.zIndexHigh_ - this.zIndexLow_) / 2 - 1;\n if (this.pendingDialogStack.length >= allowed) {\n return false;\n }\n if (this.pendingDialogStack.unshift(dpi) === 1) {\n this.blockDocument();\n }\n this.updateStacking();\n return true;\n};\n\n/**\n * @param {!dialogPolyfillInfo} dpi\n */\ndialogPolyfill.DialogManager.prototype.removeDialog = function(dpi) {\n var index = this.pendingDialogStack.indexOf(dpi);\n if (index === -1) { return; }\n\n this.pendingDialogStack.splice(index, 1);\n if (this.pendingDialogStack.length === 0) {\n this.unblockDocument();\n }\n this.updateStacking();\n};\n\ndialogPolyfill.dm = new dialogPolyfill.DialogManager();\ndialogPolyfill.formSubmitter = null;\ndialogPolyfill.imagemapUseValue = null;\n\n/**\n * Installs global handlers, such as click listers and native method overrides. These are needed\n * even if a no dialog is registered, as they deal with
.\n */\nif (window.HTMLDialogElement === undefined) {\n\n /**\n * If HTMLFormElement translates method=\"DIALOG\" into 'get', then replace the descriptor with\n * one that returns the correct value.\n */\n var testForm = document.createElement('form');\n testForm.setAttribute('method', 'dialog');\n if (testForm.method !== 'dialog') {\n var methodDescriptor = Object.getOwnPropertyDescriptor(HTMLFormElement.prototype, 'method');\n if (methodDescriptor) {\n // nb. Some older iOS and older PhantomJS fail to return the descriptor. Don't do anything\n // and don't bother to update the element.\n var realGet = methodDescriptor.get;\n methodDescriptor.get = function() {\n if (isFormMethodDialog(this)) {\n return 'dialog';\n }\n return realGet.call(this);\n };\n var realSet = methodDescriptor.set;\n /** @this {HTMLElement} */\n methodDescriptor.set = function(v) {\n if (typeof v === 'string' && v.toLowerCase() === 'dialog') {\n return this.setAttribute('method', v);\n }\n return realSet.call(this, v);\n };\n Object.defineProperty(HTMLFormElement.prototype, 'method', methodDescriptor);\n }\n }\n\n /**\n * Global 'click' handler, to capture the or