{"version":3,"file":"app-5d60c1c520b96700af33.js","mappings":"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","sources":["webpack://website/./node_modules/camelcase/index.js","webpack://website/./node_modules/dompurify/dist/purify.js","webpack://website/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://website/./node_modules/gatsby-react-router-scroll/index.js","webpack://website/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://website/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://website/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://website/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://website/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://website/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://website/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://website/./.cache/api-runner-browser-plugins.js","webpack://website/./.cache/api-runner-browser.js","webpack://website/./.cache/create-content-digest-browser-shim.js","webpack://website/./.cache/emitter.js","webpack://website/./node_modules/mitt/dist/mitt.es.js","webpack://website/./.cache/normalize-page-path.js","webpack://website/./.cache/find-path.js","webpack://website/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://website/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://website/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://website/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://website/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://website/./.cache/slice/server-slice-renderer.js","webpack://website/./.cache/slice/server-slice.js","webpack://website/./.cache/slice/inline-slice.js","webpack://website/./.cache/slice.js","webpack://website/./.cache/gatsby-browser-entry.js","webpack://website/./.cache/prefetch.js","webpack://website/./.cache/loader.js","webpack://website/./.cache/head/components/fire-callback-in-effect.js","webpack://website/./.cache/head/constants.js","webpack://website/./.cache/head/utils.js","webpack://website/./.cache/head/head-export-handler-for-browser.js","webpack://website/./.cache/page-renderer.js","webpack://website/./.cache/route-announcer-props.js","webpack://website/./.cache/navigation.js","webpack://website/./node_modules/shallow-compare/es/index.js","webpack://website/./.cache/ensure-resources.js","webpack://website/./.cache/production-app.js","webpack://website/./.cache/public-page-renderer-prod.js","webpack://website/./.cache/public-page-renderer.js","webpack://website/./.cache/react-dom-utils.js","webpack://website/./.cache/redirect-utils.js","webpack://website/./.cache/register-service-worker.js","webpack://website/./.cache/slice/context.js","webpack://website/./.cache/static-query.js","webpack://website/./.cache/context-utils.js","webpack://website/./.cache/strip-prefix.js","webpack://website/./node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js","webpack://website/../src/image-utils.ts","webpack://website/../src/components/hooks.ts","webpack://website/../src/components/layout-wrapper.tsx","webpack://website/../src/components/picture.tsx","webpack://website/../src/components/placeholder.tsx","webpack://website/../src/components/main-image.tsx","webpack://website/../src/components/gatsby-image.server.tsx","webpack://website/../src/components/gatsby-image.browser.tsx","webpack://website/../src/components/static-image.server.tsx","webpack://website/../src/components/static-image.tsx","webpack://website/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://website/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://website/./src/theme/footer/copyright.module.scss","webpack://website/./src/theme/footer/copyright.tsx","webpack://website/./src/theme/footer/nav-item.module.scss","webpack://website/./src/theme/footer/nav-item.tsx","webpack://website/./src/theme/footer/nav-items.module.scss","webpack://website/./src/theme/footer/nav-items.tsx","webpack://website/./src/theme/footer/nav.tsx","webpack://website/./src/theme/footer.module.scss","webpack://website/./src/theme/footer.tsx","webpack://website/./src/theme/header/language-switcher.module.scss","webpack://website/./src/theme/header/language-switcher.tsx","webpack://website/./src/theme/header/live-status.module.scss","webpack://website/./src/theme/header/live-status.tsx","webpack://website/./src/theme/header/live-toggle.module.scss","webpack://website/./src/theme/header/live-toggle.tsx","webpack://website/./src/theme/header/menu-toggle.module.scss","webpack://website/./src/theme/header/menu-toggle.tsx","webpack://website/./src/theme/header/nav-item.module.scss","webpack://website/./src/theme/header/nav-item.tsx","webpack://website/./src/theme/header/nav-items.module.scss","webpack://website/./src/theme/header/nav-submenu.module.scss","webpack://website/./src/theme/header/nav-submenu.tsx","webpack://website/./src/theme/header/nav-items.tsx","webpack://website/./src/theme/header/nav.tsx","webpack://website/./src/theme/header/logo.module.scss","webpack://website/./src/theme/header/logo.tsx","webpack://website/./src/theme/header/toolbar.module.scss","webpack://website/./src/theme/header/toolbar.tsx","webpack://website/./src/theme/header.module.scss","webpack://website/./src/theme/header.tsx","webpack://website/./src/theme/layout.module.scss","webpack://website/./src/theme/notification.module.scss","webpack://website/./src/theme/notification.tsx","webpack://website/./src/theme/scripts.tsx","webpack://website/./src/theme/layout.tsx","webpack://website/./gatsby-browser.tsx","webpack://website/./wrap-page-element.tsx","webpack://website/./src/common/arolla-pine-trail.module.scss","webpack://website/./src/common/arolla-pine-trail.tsx","webpack://website/./src/common/contact-form.module.scss","webpack://website/./src/common/contact-form.tsx","webpack://website/./src/common/contact.module.scss","webpack://website/./src/common/contact.tsx","webpack://website/./src/common/directions-option.module.scss","webpack://website/./src/common/directions-option.tsx","webpack://website/./src/common/directions.module.scss","webpack://website/./src/common/directions.tsx","webpack://website/./node_modules/rrule/dist/esm/weekday.js","webpack://website/./node_modules/rrule/dist/esm/helpers.js","webpack://website/./node_modules/rrule/dist/esm/dateutil.js","webpack://website/./node_modules/rrule/dist/esm/iterresult.js","webpack://website/./node_modules/tslib/tslib.es6.js","webpack://website/./node_modules/rrule/dist/esm/callbackiterresult.js","webpack://website/./node_modules/rrule/dist/esm/types.js","webpack://website/./node_modules/rrule/dist/esm/nlp/i18n.js","webpack://website/./node_modules/rrule/dist/esm/nlp/totext.js","webpack://website/./node_modules/rrule/dist/esm/nlp/parsetext.js","webpack://website/./node_modules/rrule/dist/esm/nlp/index.js","webpack://website/./node_modules/rrule/dist/esm/datetime.js","webpack://website/./node_modules/rrule/dist/esm/parseoptions.js","webpack://website/./node_modules/rrule/dist/esm/parsestring.js","webpack://website/./node_modules/rrule/dist/esm/datewithzone.js","webpack://website/./node_modules/rrule/dist/esm/optionstostring.js","webpack://website/./node_modules/rrule/dist/esm/cache.js","webpack://website/./node_modules/rrule/dist/esm/masks.js","webpack://website/./node_modules/rrule/dist/esm/iterinfo/yearinfo.js","webpack://website/./node_modules/rrule/dist/esm/iterinfo/index.js","webpack://website/./node_modules/rrule/dist/esm/iterinfo/monthinfo.js","webpack://website/./node_modules/rrule/dist/esm/iterinfo/easter.js","webpack://website/./node_modules/rrule/dist/esm/iter/poslist.js","webpack://website/./node_modules/rrule/dist/esm/iter/index.js","webpack://website/./node_modules/rrule/dist/esm/rrule.js","webpack://website/./node_modules/rrule/dist/esm/rrulestr.js","webpack://website/./node_modules/rrule/dist/esm/rruleset.js","webpack://website/./node_modules/rrule/dist/esm/iterset.js","webpack://website/./src/common/event.module.scss","webpack://website/./src/common/event.tsx","webpack://website/./src/common/events.tsx","webpack://website/./src/common/facilities.module.scss","webpack://website/./src/common/facility.module.scss","webpack://website/./src/common/facility.tsx","webpack://website/./src/common/facilities.tsx","webpack://website/./src/common/page-content.module.scss","webpack://website/./src/common/page-content.tsx","webpack://website/./src/common/image.tsx","webpack://website/./src/common/page-header.module.scss","webpack://website/./src/common/page-header.tsx","webpack://website/./src/common/iframe.module.scss","webpack://website/./src/common/iframe.tsx","webpack://website/./src/common/image-gallery.module.scss","webpack://website/./src/common/image-gallery.tsx","webpack://website/./src/common/panorama.module.scss","webpack://website/./src/common/panorama.tsx","webpack://website/./src/common/prices.module.scss","webpack://website/./src/common/prices.tsx","webpack://website/./src/common/slope.module.scss","webpack://website/./src/common/slope.tsx","webpack://website/./src/common/slopes.module.scss","webpack://website/./src/common/slopes.tsx","webpack://website/./src/common/webcam-interactive.module.scss","webpack://website/./src/common/webcam-interactive.tsx","webpack://website/./src/common/webcams-interactive.module.scss","webpack://website/./src/common/webcams-interactive.tsx","webpack://website/./src/common/webcam-preview.module.scss","webpack://website/./src/common/webcam-preview.tsx","webpack://website/./src/common/webcams-preview.module.scss","webpack://website/./src/common/webcams-preview.tsx","webpack://website/./src/common/weather-forecast.module.scss","webpack://website/./src/common/weather-forecast.tsx","webpack://website/./src/common/weather-overall.module.scss","webpack://website/./src/common/weather-overall.tsx","webpack://website/./src/common/weather-over-the-day.module.scss","webpack://website/./src/common/weather-over-the-day.tsx","webpack://website/./src/components/a11y/roving-index-container.tsx","webpack://website/./src/components/a11y/roving-index-item.tsx","webpack://website/./src/components/a11y/sr-only.module.scss","webpack://website/./src/components/a11y/sr-only.tsx","webpack://website/./src/components/breakpoints.module.scss","webpack://website/./src/components/breakpoints.tsx","webpack://website/./src/components/form/field.module.scss","webpack://website/./src/components/form/fields/checkbox.module.scss","webpack://website/./src/components/form/fields/input.module.scss","webpack://website/./src/components/form/fields/input.tsx","webpack://website/./src/components/form/fields/checkbox.tsx","webpack://website/./src/components/form/fields/date.tsx","webpack://website/./src/components/form/fields/email.tsx","webpack://website/./src/components/form/fields/hidden.tsx","webpack://website/./src/components/form/fields/number.tsx","webpack://website/./src/components/form/fields/select.module.scss","webpack://website/./src/components/form/fields/select.tsx","webpack://website/./src/components/form/fields/text.tsx","webpack://website/./src/components/form/fields/text-area.module.scss","webpack://website/./src/components/form/fields/text-area.tsx","webpack://website/./src/components/form/field.tsx","webpack://website/./src/components/html/anchor.module.scss","webpack://website/./src/components/html/anchor.tsx","webpack://website/./src/components/html/html.tsx","webpack://website/./node_modules/marked/lib/marked.esm.js","webpack://website/./src/components/html/markdown.tsx","webpack://website/./src/components/html/pre-wrap.module.scss","webpack://website/./src/components/html/pre-wrap.tsx","webpack://website/./src/components/i18n/trans.tsx","webpack://website/./src/components/i18n/languages.tsx","webpack://website/./src/components/seo/page-head.tsx","webpack://website/./src/components/ui/accordion-controlled.module.scss","webpack://website/./src/components/ui/accordion-item-context.tsx","webpack://website/./src/components/ui/accordion-item.module.scss","webpack://website/./src/components/ui/title.module.scss","webpack://website/./src/components/ui/title.tsx","webpack://website/./src/components/ui/accordion-item.tsx","webpack://website/./src/components/ui/accordion-controlled.tsx","webpack://website/./src/components/ui/accordion.tsx","webpack://website/./src/components/ui/button.module.scss","webpack://website/./src/components/ui/text.module.scss","webpack://website/./src/components/ui/text.tsx","webpack://website/./src/components/ui/button.tsx","webpack://website/./src/components/ui/carousel-constants.tsx","webpack://website/./src/components/ui/carousel-context.tsx","webpack://website/./src/components/ui/carousel-controlled.module.scss","webpack://website/./src/components/ui/carousel-controls.module.scss","webpack://website/./src/components/ui/carousel-controls.tsx","webpack://website/./src/components/ui/carousel-item-context.tsx","webpack://website/./src/components/ui/carousel-item.module.scss","webpack://website/./src/components/ui/carousel-item.tsx","webpack://website/./src/components/ui/carousel-items.module.scss","webpack://website/./src/components/ui/carousel-items.tsx","webpack://website/./src/components/ui/carousel-next.module.scss","webpack://website/./src/components/ui/carousel-prev.module.scss","webpack://website/./src/components/ui/carousel-tab-context.tsx","webpack://website/./src/components/ui/carousel-tab.module.scss","webpack://website/./src/components/ui/carousel-tab.tsx","webpack://website/./src/components/ui/carousel-tabs.module.scss","webpack://website/./src/components/ui/carousel-tabs.tsx","webpack://website/./src/components/ui/carousel-controlled.tsx","webpack://website/./src/components/ui/carousel-next.tsx","webpack://website/./src/components/ui/carousel-prev.tsx","webpack://website/./src/components/ui/carousel.tsx","webpack://website/./src/components/ui/container.module.scss","webpack://website/./src/components/ui/container.tsx","webpack://website/./src/components/ui/divider.module.scss","webpack://website/./src/components/ui/divider.tsx","webpack://website/./src/components/ui/inline-svg.module.scss","webpack://website/./src/components/ui/inline-svg.tsx","webpack://website/./src/components/ui/section.module.scss","webpack://website/./src/components/ui/section.tsx","webpack://website/./src/components/ui/tab-context.tsx","webpack://website/./src/components/ui/tab.module.scss","webpack://website/./src/components/ui/tab.tsx","webpack://website/./src/components/ui/tab-list.module.scss","webpack://website/./src/components/ui/tabs-context.tsx","webpack://website/./src/components/ui/tab-panel-context.tsx","webpack://website/./src/components/ui/tab-panel.module.scss","webpack://website/./src/components/ui/tab-panel.tsx","webpack://website/./src/components/ui/tabs-controlled.tsx","webpack://website/./src/components/ui/tab-list.tsx","webpack://website/./src/components/ui/tab-panels.tsx","webpack://website/./src/components/ui/tabs.tsx","webpack://website/./src/components/ui/tooltip.module.scss","webpack://website/./src/components/ui/tooltip.tsx","webpack://website/./src/components/utils/conditional.tsx","webpack://website/./src/config.ts","webpack://website/./src/contexts/a11y/roving-index.tsx","webpack://website/./src/contexts/i18n/locale.tsx","webpack://website/./src/contexts/theme/theme.tsx","webpack://website/./src/hooks/a11y/use-button.ts","webpack://website/./src/hooks/a11y/use-disclosure.ts","webpack://website/./src/hooks/a11y/use-menu.ts","webpack://website/./src/hooks/a11y/use-menuitem.ts","webpack://website/./src/hooks/a11y/use-submenu.ts","webpack://website/./src/hooks/a11y/use-tab.ts","webpack://website/./src/hooks/a11y/use-tablist.ts","webpack://website/./src/hooks/a11y/use-toolbar.ts","webpack://website/./src/hooks/contexts/use-locale.ts","webpack://website/./src/hooks/contexts/use-roving-index.ts","webpack://website/./src/hooks/dom/use-classname.ts","webpack://website/./src/hooks/dom/use-focus-first.ts","webpack://website/./src/hooks/dom/use-format-date.ts","webpack://website/./src/hooks/dom/use-format-time.ts","webpack://website/./src/hooks/dom/use-forwarded-ref.ts","webpack://website/./src/hooks/dom/use-fullscreen.ts","webpack://website/./src/hooks/dom/use-keypress.ts","webpack://website/./src/hooks/dom/use-scroll-lock.ts","webpack://website/./src/hooks/dom/use-transition.ts","webpack://website/./src/hooks/graphql/use-accessibility.ts","webpack://website/./src/hooks/graphql/use-settings.ts","webpack://website/./src/hooks/graphql/use-facilities.ts","webpack://website/./src/hooks/graphql/use-live-status.ts","webpack://website/./src/hooks/graphql/use-notification.ts","webpack://website/./src/hooks/graphql/use-pages.ts","webpack://website/./src/hooks/graphql/use-root-pages.ts","webpack://website/./src/hooks/graphql/use-slopes.ts","webpack://website/./src/hooks/graphql/use-weather.ts","webpack://website/./src/hooks/graphql/use-webcams.ts","webpack://website/./src/hooks/i18n/use-translate.ts","webpack://website/./src/hooks/i18n/use-translate-array.ts","webpack://website/./src/hooks/i18n/use-translate-object.ts","webpack://website/./src/utils/type-guards.ts","webpack://website/./src/utils/email.ts","webpack://website/./src/utils/string.ts","webpack://website/./src/utils/graphql.ts","webpack://website/./src/environment.ts","webpack://website/./src/utils/i18n.ts","webpack://website/./src/utils/phone.ts","webpack://website/./src/utils/url.ts","webpack://website/./node_modules/invariant/browser.js","webpack://website/./node_modules/isomorphic-dompurify/browser.js","webpack://website/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://website/./node_modules/react-server-dom-webpack/index.js","webpack://website/./src/svg/arrow.svg","webpack://website/./src/svg/close-fullscreen.svg","webpack://website/./src/svg/close.svg","webpack://website/./src/svg/info.svg","webpack://website/./src/svg/logo.svg","webpack://website/./src/svg/minus.svg","webpack://website/./src/svg/open-fullscreen.svg","webpack://website/./src/svg/play.svg","webpack://website/./src/svg/plus.svg","webpack://website/./src/svg/tickets.svg","webpack://website/./src/svg/warning.svg","webpack://website/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://website/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://website/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://website/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://website/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://website/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://website/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://website/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://website/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://website/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://website/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://website/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://website/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://website/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://website/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://website/./node_modules/gatsby-script/dist/index.modern.mjs"],"sourcesContent":["'use strict';\n\nconst UPPERCASE = /[\\p{Lu}]/u;\nconst LOWERCASE = /[\\p{Ll}]/u;\nconst LEADING_CAPITAL = /^[\\p{Lu}](?![\\p{Lu}])/gu;\nconst IDENTIFIER = /([\\p{Alpha}\\p{N}_]|$)/u;\nconst SEPARATORS = /[_.\\- ]+/;\n\nconst LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source);\nconst SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, 'gu');\nconst NUMBERS_AND_IDENTIFIER = new RegExp('\\\\d+' + IDENTIFIER.source, 'gu');\n\nconst preserveCamelCase = (string, toLowerCase, toUpperCase) => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst character = string[i];\n\n\t\tif (isLastCharLower && UPPERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i) + '-' + string.slice(i);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\ti++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst preserveConsecutiveUppercase = (input, toLowerCase) => {\n\tLEADING_CAPITAL.lastIndex = 0;\n\n\treturn input.replace(LEADING_CAPITAL, m1 => toLowerCase(m1));\n};\n\nconst postProcess = (input, toUpperCase) => {\n\tSEPARATORS_AND_IDENTIFIER.lastIndex = 0;\n\tNUMBERS_AND_IDENTIFIER.lastIndex = 0;\n\n\treturn input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier))\n\t\t.replace(NUMBERS_AND_IDENTIFIER, m => toUpperCase(m));\n};\n\nconst camelCase = (input, options) => {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = {\n\t\tpascalCase: false,\n\t\tpreserveConsecutiveUppercase: false,\n\t\t...options\n\t};\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tconst toLowerCase = options.locale === false ?\n\t\tstring => string.toLowerCase() :\n\t\tstring => string.toLocaleLowerCase(options.locale);\n\tconst toUpperCase = options.locale === false ?\n\t\tstring => string.toUpperCase() :\n\t\tstring => string.toLocaleUpperCase(options.locale);\n\n\tif (input.length === 1) {\n\t\treturn options.pascalCase ? toUpperCase(input) : toLowerCase(input);\n\t}\n\n\tconst hasUpperCase = input !== toLowerCase(input);\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input, toLowerCase, toUpperCase);\n\t}\n\n\tinput = input.replace(LEADING_SEPARATORS, '');\n\n\tif (options.preserveConsecutiveUppercase) {\n\t\tinput = preserveConsecutiveUppercase(input, toLowerCase);\n\t} else {\n\t\tinput = toLowerCase(input);\n\t}\n\n\tif (options.pascalCase) {\n\t\tinput = toUpperCase(input.charAt(0)) + input.slice(1);\n\t}\n\n\treturn postProcess(input, toUpperCase);\n};\n\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;\n","/*! @license DOMPurify 3.1.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.3/LICENSE */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DOMPurify = factory());\n})(this, (function () { 'use strict';\n\n const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n } = Object;\n let {\n freeze,\n seal,\n create\n } = Object; // eslint-disable-line import/no-mutable-exports\n let {\n apply,\n construct\n } = typeof Reflect !== 'undefined' && Reflect;\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n if (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n }\n const arrayForEach = unapply(Array.prototype.forEach);\n const arrayPop = unapply(Array.prototype.pop);\n const arrayPush = unapply(Array.prototype.push);\n const stringToLowerCase = unapply(String.prototype.toLowerCase);\n const stringToString = unapply(String.prototype.toString);\n const stringMatch = unapply(String.prototype.match);\n const stringReplace = unapply(String.prototype.replace);\n const stringIndexOf = unapply(String.prototype.indexOf);\n const stringTrim = unapply(String.prototype.trim);\n const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n const regExpTest = unapply(RegExp.prototype.test);\n const typeErrorCreate = unconstruct(TypeError);\n const numberIsNaN = unapply(Number.isNaN);\n\n /**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param {Function} func - The function to be wrapped and called.\n * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.\n */\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n }\n\n /**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param {Function} func - The constructor function to be wrapped and called.\n * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.\n */\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n }\n\n /**\n * Add properties to a lookup table\n *\n * @param {Object} set - The set to which elements will be added.\n * @param {Array} array - The array containing elements to be added to the set.\n * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns {Object} The modified set with added elements.\n */\n function addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n }\n\n /**\n * Clean up an array to harden against CSPP\n *\n * @param {Array} array - The array to be cleaned.\n * @returns {Array} The cleaned version of the array\n */\n function cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n }\n\n /**\n * Shallow clone an object\n *\n * @param {Object} object - The object to be cloned.\n * @returns {Object} A new object that copies the original.\n */\n function clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n }\n\n /**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param {Object} object - The object to look up the getter function in its prototype chain.\n * @param {String} prop - The property name for which to find the getter function.\n * @returns {Function} The getter function found in the prototype chain or a fallback function.\n */\n function lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n }\n\n const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n const text = freeze(['#text']);\n\n const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\n const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\n const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n\n const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n const ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n\n const DOCTYPE_NAME = seal(/^html$/i);\n const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n var EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n ERB_EXPR: ERB_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR,\n DATA_ATTR: DATA_ATTR,\n ARIA_ATTR: ARIA_ATTR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n DOCTYPE_NAME: DOCTYPE_NAME,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT\n });\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n };\n\n const getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return {TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\n const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n function createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '3.1.3';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n\n /* Specify the maximum element nesting depth to prevent mXSS */\n const MAX_NESTING_DEPTH = 255;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS),\n // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n const HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'annotation-xml']);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n\n /**\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n node.remove();\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param {Node} root The root element or node to start traversing on.\n * @return {NodeIterator} The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (\n // eslint-disable-next-line unicorn/no-typeof-undefined\n typeof elm.__depth !== 'undefined' && typeof elm.__depth !== 'number' ||\n // eslint-disable-next-line unicorn/no-typeof-undefined\n typeof elm.__removalCount !== 'undefined' && typeof elm.__removalCount !== 'number' || typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n };\n\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param {Node} object object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n const _isNode = function _isNode(object) {\n return typeof Node === 'function' && object instanceof Node;\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n const _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n arrayForEach(hooks[entryPoint], hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any ocurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement || value === '__depth' || value === '__removalCount')) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param {string} tagName name of the tag of the node to sanitize\n * @returns {boolean} Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n const {\n attributes\n } = currentNode;\n\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n let l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n const parentNode = getParentNode(shadowNode);\n\n /* Set the nesting depth of an element */\n if (shadowNode.nodeType === NODE_TYPE.element) {\n if (parentNode && parentNode.__depth) {\n /*\n We want the depth of the node in the original tree, which can\n change when it's removed from its parent.\n */\n shadowNode.__depth = (shadowNode.__removalCount || 0) + parentNode.__depth + 1;\n } else {\n shadowNode.__depth = 1;\n }\n }\n\n /*\n * Remove an element if nested too deeply to avoid mXSS\n * or if the __depth might have been tampered with\n */\n if (shadowNode.__depth >= MAX_NESTING_DEPTH || shadowNode.__depth < 0 || numberIsNaN(shadowNode.__depth)) {\n _forceRemove(shadowNode);\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n shadowNode.content.__depth = shadowNode.__depth;\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} cfg object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n const parentNode = getParentNode(currentNode);\n\n /* Set the nesting depth of an element */\n if (currentNode.nodeType === NODE_TYPE.element) {\n if (parentNode && parentNode.__depth) {\n /*\n We want the depth of the node in the original tree, which can\n change when it's removed from its parent.\n */\n currentNode.__depth = (currentNode.__removalCount || 0) + parentNode.__depth + 1;\n } else {\n currentNode.__depth = 1;\n }\n }\n\n /*\n * Remove an element if nested too deeply to avoid mXSS\n * or if the __depth might have been tampered with\n */\n if (currentNode.__depth >= MAX_NESTING_DEPTH || currentNode.__depth < 0 || numberIsNaN(currentNode.__depth)) {\n _forceRemove(currentNode);\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n currentNode.content.__depth = currentNode.__depth;\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n }\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '\\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {String} tag Tag name of containing element.\n * @param {String} attr Attribute name.\n * @param {String} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n return DOMPurify;\n }\n var purify = createDOMPurify();\n\n return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\nconst endsWithSuffixes = (suffixes, input) => {\n for (const suffix of suffixes) {\n if (input.endsWith(suffix)) return true;\n }\n return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n if (input === `/`) return input;\n const hasTrailingSlash = input.endsWith(`/`);\n if (endsWithSuffixes(suffixes, input)) {\n return input;\n }\n if (option === `always`) {\n return hasTrailingSlash ? input : `${input}/`;\n }\n if (option === `never`) {\n return hasTrailingSlash ? input.slice(0, -1) : input;\n }\n return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n function ScrollHandler() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n if (!shouldUpdateScroll) {\n return true;\n }\n\n // Hack to allow accessing this._stateStorage.\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n return _this;\n }\n var _proto = ScrollHandler.prototype;\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n this._isTicking = false;\n };\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n * from an external website) then scroll to the hash instead of any previously stored scroll\n * position. */\n if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n } else if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n return ScrollHandler;\n}(React.Component);\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n var _proto = SessionStorage.prototype;\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n return 0;\n }\n };\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n // Clear scripts after we've used them to avoid leaky behavior\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\n// Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n if (existingSnippet) {\n existingSnippet.remove();\n }\n if (existingSandbox) {\n existingSandbox.remove();\n }\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.components = {\n \"component---src-pages-404-tsx\": () => import(\"./../../../src/pages/404.tsx\" /* webpackChunkName: \"component---src-pages-404-tsx\" */),\n \"component---src-pages-date-time-tsx\": () => import(\"./../../../src/pages/date-time.tsx\" /* webpackChunkName: \"component---src-pages-date-time-tsx\" */),\n \"component---src-pages-facilities-slopes-tsx\": () => import(\"./../../../src/pages/facilities-slopes.tsx\" /* webpackChunkName: \"component---src-pages-facilities-slopes-tsx\" */),\n \"component---src-templates-accessibility-tsx\": () => import(\"./../../../src/templates/accessibility.tsx\" /* webpackChunkName: \"component---src-templates-accessibility-tsx\" */),\n \"component---src-templates-alpine-garden-tsx\": () => import(\"./../../../src/templates/alpine-garden.tsx\" /* webpackChunkName: \"component---src-templates-alpine-garden-tsx\" */),\n \"component---src-templates-arolla-pine-trail-tsx\": () => import(\"./../../../src/templates/arolla-pine-trail.tsx\" /* webpackChunkName: \"component---src-templates-arolla-pine-trail-tsx\" */),\n \"component---src-templates-bee-education-trail-tsx\": () => import(\"./../../../src/templates/bee-education-trail.tsx\" /* webpackChunkName: \"component---src-templates-bee-education-trail-tsx\" */),\n \"component---src-templates-children-land-tsx\": () => import(\"./../../../src/templates/children-land.tsx\" /* webpackChunkName: \"component---src-templates-children-land-tsx\" */),\n \"component---src-templates-contact-tsx\": () => import(\"./../../../src/templates/contact.tsx\" /* webpackChunkName: \"component---src-templates-contact-tsx\" */),\n \"component---src-templates-directions-tsx\": () => import(\"./../../../src/templates/directions.tsx\" /* webpackChunkName: \"component---src-templates-directions-tsx\" */),\n \"component---src-templates-events-tsx\": () => import(\"./../../../src/templates/events.tsx\" /* webpackChunkName: \"component---src-templates-events-tsx\" */),\n \"component---src-templates-gastronomy-tsx\": () => import(\"./../../../src/templates/gastronomy.tsx\" /* webpackChunkName: \"component---src-templates-gastronomy-tsx\" */),\n \"component---src-templates-group-tours-tsx\": () => import(\"./../../../src/templates/group-tours.tsx\" /* webpackChunkName: \"component---src-templates-group-tours-tsx\" */),\n \"component---src-templates-gtc-tsx\": () => import(\"./../../../src/templates/gtc.tsx\" /* webpackChunkName: \"component---src-templates-gtc-tsx\" */),\n \"component---src-templates-hiking-trails-tsx\": () => import(\"./../../../src/templates/hiking-trails.tsx\" /* webpackChunkName: \"component---src-templates-hiking-trails-tsx\" */),\n \"component---src-templates-home-tsx\": () => import(\"./../../../src/templates/home.tsx\" /* webpackChunkName: \"component---src-templates-home-tsx\" */),\n \"component---src-templates-imprint-tsx\": () => import(\"./../../../src/templates/imprint.tsx\" /* webpackChunkName: \"component---src-templates-imprint-tsx\" */),\n \"component---src-templates-intersport-tsx\": () => import(\"./../../../src/templates/intersport.tsx\" /* webpackChunkName: \"component---src-templates-intersport-tsx\" */),\n \"component---src-templates-jobs-tsx\": () => import(\"./../../../src/templates/jobs.tsx\" /* webpackChunkName: \"component---src-templates-jobs-tsx\" */),\n \"component---src-templates-kids-hiking-trails-tsx\": () => import(\"./../../../src/templates/kids-hiking-trails.tsx\" /* webpackChunkName: \"component---src-templates-kids-hiking-trails-tsx\" */),\n \"component---src-templates-live-status-tsx\": () => import(\"./../../../src/templates/live-status.tsx\" /* webpackChunkName: \"component---src-templates-live-status-tsx\" */),\n \"component---src-templates-mountainbike-tsx\": () => import(\"./../../../src/templates/mountainbike.tsx\" /* webpackChunkName: \"component---src-templates-mountainbike-tsx\" */),\n \"component---src-templates-opening-hours-tsx\": () => import(\"./../../../src/templates/opening-hours.tsx\" /* webpackChunkName: \"component---src-templates-opening-hours-tsx\" */),\n \"component---src-templates-playground-tsx\": () => import(\"./../../../src/templates/playground.tsx\" /* webpackChunkName: \"component---src-templates-playground-tsx\" */),\n \"component---src-templates-prices-tsx\": () => import(\"./../../../src/templates/prices.tsx\" /* webpackChunkName: \"component---src-templates-prices-tsx\" */),\n \"component---src-templates-privacy-tsx\": () => import(\"./../../../src/templates/privacy.tsx\" /* webpackChunkName: \"component---src-templates-privacy-tsx\" */),\n \"component---src-templates-protect-kofel-tsx\": () => import(\"./../../../src/templates/protect-kofel.tsx\" /* webpackChunkName: \"component---src-templates-protect-kofel-tsx\" */),\n \"component---src-templates-quiz-hiking-trail-tsx\": () => import(\"./../../../src/templates/quiz-hiking-trail.tsx\" /* webpackChunkName: \"component---src-templates-quiz-hiking-trail-tsx\" */),\n \"component---src-templates-reconstruction-water-supply-tsx\": () => import(\"./../../../src/templates/reconstruction-water-supply.tsx\" /* webpackChunkName: \"component---src-templates-reconstruction-water-supply-tsx\" */),\n \"component---src-templates-restaurants-tsx\": () => import(\"./../../../src/templates/restaurants.tsx\" /* webpackChunkName: \"component---src-templates-restaurants-tsx\" */),\n \"component---src-templates-seminars-tsx\": () => import(\"./../../../src/templates/seminars.tsx\" /* webpackChunkName: \"component---src-templates-seminars-tsx\" */),\n \"component---src-templates-ski-snowboard-tsx\": () => import(\"./../../../src/templates/ski-snowboard.tsx\" /* webpackChunkName: \"component---src-templates-ski-snowboard-tsx\" */),\n \"component---src-templates-skischools-tsx\": () => import(\"./../../../src/templates/skischools.tsx\" /* webpackChunkName: \"component---src-templates-skischools-tsx\" */),\n \"component---src-templates-skitour-tsx\": () => import(\"./../../../src/templates/skitour.tsx\" /* webpackChunkName: \"component---src-templates-skitour-tsx\" */),\n \"component---src-templates-snowpark-tsx\": () => import(\"./../../../src/templates/snowpark.tsx\" /* webpackChunkName: \"component---src-templates-snowpark-tsx\" */),\n \"component---src-templates-snowshoeing-tsx\": () => import(\"./../../../src/templates/snowshoeing.tsx\" /* webpackChunkName: \"component---src-templates-snowshoeing-tsx\" */),\n \"component---src-templates-trailrunning-tsx\": () => import(\"./../../../src/templates/trailrunning.tsx\" /* webpackChunkName: \"component---src-templates-trailrunning-tsx\" */),\n \"component---src-templates-training-race-courses-tsx\": () => import(\"./../../../src/templates/training-race-courses.tsx\" /* webpackChunkName: \"component---src-templates-training-race-courses-tsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js'),\n options: {\"plugins\":[],\"id\":\"GTM-T58M5T5\",\"includeInDevelopment\":false,\"routeChangeEventName\":\"gatsby-page-view\",\"enableWebVitalsTracking\":false,\"defaultDataLayer\":null,\"selfHostedOrigin\":\"https://www.googletagmanager.com\",\"selfHostedPath\":\"gtm.js\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"lang\":\"de\",\"start_url\":\"/\",\"display\":\"standalone\",\"name\":\"Patscherkofel Website\",\"short_name\":\"Patscherkofel Website\",\"description\":\"Alle Neuigkeiten und Events am Patscherkofel.\",\"theme_color\":\"#303030\",\"background_color\":\"#FFFFFF\",\"icon\":\"src/svg/favicon.svg\",\"crossOrigin\":\"use-credentials\",\"localize\":[{\"lang\":\"en\",\"start_url\":\"/en/\",\"name\":\"Patscherkofel Website\",\"short_name\":\"Patscherkofel Website\",\"description\":\"All news and events at Patscherkofel.\"}],\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"include_favicon\":true,\"cacheDigest\":\"49b4ecca72306c6dcdfd057a7eafc731\"},\n },{\n plugin: require('../gatsby-browser.tsx'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","exports.createContentDigest = () => ``\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n return typeof fn === \"function\";\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}","import React from \"react\"\n\nexport const ServerSliceRenderer = ({ sliceId, children }) => {\n const contents = [\n React.createElement(`slice-start`, {\n id: `${sliceId}-1`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-1`,\n }),\n ]\n\n if (children) {\n // if children exist, we split the slice into a before and after piece\n // see renderSlices in render-html\n contents.push(children)\n contents.push(\n React.createElement(`slice-start`, {\n id: `${sliceId}-2`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-2`,\n })\n )\n }\n\n return contents\n}\n","import React, { useContext } from \"react\"\nimport { createContentDigest } from \"gatsby-core-utils/create-content-digest\"\nimport { SlicesMapContext, SlicesPropsContext } from \"./context\"\nimport { ServerSliceRenderer } from \"./server-slice-renderer\"\n\nconst getSliceId = (sliceName, sliceProps) => {\n if (!Object.keys(sliceProps).length) {\n return sliceName\n }\n\n const propsString = createContentDigest(sliceProps)\n return `${sliceName}-${propsString}`\n}\n\nexport const ServerSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesProps = useContext(SlicesPropsContext)\n const concreteSliceName = slicesMap[sliceName]\n\n if (!concreteSliceName) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n const sliceId = getSliceId(concreteSliceName, sliceProps)\n\n // set props on context object for static-entry to return\n let sliceUsage = slicesProps[sliceId]\n if (!sliceUsage) {\n slicesProps[sliceId] = sliceUsage = {\n props: sliceProps,\n sliceName: concreteSliceName,\n hasChildren: !!children,\n }\n } else {\n if (children) {\n sliceUsage.hasChildren = true\n }\n }\n\n return {children}\n}\n","import React, { useContext } from \"react\"\nimport { SlicesMapContext, SlicesResultsContext } from \"./context\"\n\nexport const InlineSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesResultsMap = useContext(SlicesResultsContext)\n const concreteSliceName = slicesMap[sliceName]\n const slice = slicesResultsMap.get(concreteSliceName)\n\n if (!slice) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n return (\n \n {children}\n \n )\n}\n","\"use client\"\n\nimport React, { useContext } from \"react\"\nimport { ServerSlice } from \"./slice/server-slice\"\nimport { InlineSlice } from \"./slice/inline-slice\"\nimport { SlicesContext } from \"./slice/context\"\n\nexport function Slice(props) {\n if (process.env.GATSBY_SLICES) {\n // we use sliceName internally, so remap alias to sliceName\n const internalProps = {\n ...props,\n sliceName: props.alias,\n }\n delete internalProps.alias\n delete internalProps.__renderedByLocation\n\n const slicesContext = useContext(SlicesContext)\n\n // validate props\n const propErrors = validateSliceProps(props)\n if (Object.keys(propErrors).length) {\n throw new SlicePropsError(\n slicesContext.renderEnvironment === `browser`,\n internalProps.sliceName,\n propErrors,\n props.__renderedByLocation\n )\n }\n\n if (slicesContext.renderEnvironment === `server`) {\n return \n } else if (slicesContext.renderEnvironment === `browser`) {\n // in the browser, we'll just render the component as is\n return \n } else if (\n slicesContext.renderEnvironment === `engines` ||\n slicesContext.renderEnvironment === `dev-ssr`\n ) {\n // if we're in SSR, we'll just render the component as is\n return \n } else if (slicesContext.renderEnvironment === `slices`) {\n // we are not yet supporting nested slices\n\n let additionalContextMessage = ``\n\n // just in case generating additional contextual information fails, we still want the base message to show\n // and not show another cryptic error message\n try {\n additionalContextMessage = `\\n\\nSlice component \"${slicesContext.sliceRoot.name}\" (${slicesContext.sliceRoot.componentPath}) tried to render `\n } catch {\n // don't need to handle it, we will just skip the additional context message if we fail to generate it\n }\n\n throw new Error(\n `Nested slices are not supported.${additionalContextMessage}\\n\\nSee https://gatsbyjs.com/docs/reference/built-in-components/gatsby-slice#nested-slices`\n )\n } else {\n throw new Error(\n `Slice context \"${slicesContext.renderEnvironment}\" is not supported.`\n )\n }\n } else {\n throw new Error(`Slices are disabled.`)\n }\n}\n\nclass SlicePropsError extends Error {\n constructor(inBrowser, sliceName, propErrors, renderedByLocation) {\n const errors = Object.entries(propErrors)\n .map(\n ([key, value]) =>\n `not serializable \"${value}\" type passed to \"${key}\" prop`\n )\n .join(`, `)\n\n const name = `SlicePropsError`\n let stack = ``\n let message = ``\n\n if (inBrowser) {\n // They're just (kinda) kidding, I promise... You can still work here <3\n // https://www.gatsbyjs.com/careers/\n const fullStack =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugCurrentFrame.getCurrentStack()\n\n // remove the first line of the stack trace\n const stackLines = fullStack.trim().split(`\\n`).slice(1)\n stackLines[0] = stackLines[0].trim()\n stack = `\\n` + stackLines.join(`\\n`)\n\n message = `Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n } else {\n // we can't really grab any extra info outside of the browser, so just print what we can\n message = `${name}: Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n const stackLines = new Error().stack.trim().split(`\\n`).slice(2)\n stack = `${message}\\n${stackLines.join(`\\n`)}`\n }\n\n super(message)\n this.name = name\n if (stack) {\n this.stack = stack\n } else {\n Error.captureStackTrace(this, SlicePropsError)\n }\n\n if (renderedByLocation) {\n this.forcedLocation = { ...renderedByLocation, functionName: `Slice` }\n }\n }\n}\n\nconst validateSliceProps = (\n props,\n errors = {},\n seenObjects = [],\n path = null\n) => {\n // recursively validate all props\n for (const [name, value] of Object.entries(props)) {\n if (\n value === undefined ||\n value === null ||\n (!path && name === `children`)\n ) {\n continue\n }\n\n const propPath = path ? `${path}.${name}` : name\n\n if (typeof value === `function`) {\n errors[propPath] = typeof value\n } else if (typeof value === `object` && seenObjects.indexOf(value) <= 0) {\n seenObjects.push(value)\n validateSliceProps(value, errors, seenObjects, propPath)\n }\n }\n\n return errors\n}\n","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\nexport * from \"gatsby-script\"\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n slicesMap: pageData.slicesMap ?? {},\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\n })\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.partialHydrationDb = new Map()\n this.slicesDataDb = new Map()\n this.sliceInflightDb = new Map()\n this.slicesDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadSliceDataJson(sliceName) {\n if (this.slicesDataDb.has(sliceName)) {\n const jsonPayload = this.slicesDataDb.get(sliceName)\n return Promise.resolve({ sliceName, jsonPayload })\n }\n\n const url = `${__PATH_PREFIX__}/slice-data/${sliceName}.json`\n return doFetch(url, `GET`).then(res => {\n const jsonPayload = JSON.parse(res.responseText)\n\n this.slicesDataDb.set(sliceName, jsonPayload)\n return { sliceName, jsonPayload }\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return Promise.resolve({\n error: page.error,\n status: page.status,\n })\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const loadDataPromises = [\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]\n\n if (global.hasPartialHydration) {\n loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n }\n\n const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n if (\n pageDataResponse.status === PageResourceStatus.Error ||\n rscDataResponse?.status === PageResourceStatus.Error\n ) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = pageDataResponse.payload\n\n const {\n componentChunkName,\n staticQueryHashes: pageStaticQueryHashes = [],\n slicesMap = {},\n } = pageData\n\n const finalResult = {}\n\n const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n const loadSlice = slice => {\n if (this.slicesDb.has(slice.name)) {\n return this.slicesDb.get(slice.name)\n } else if (this.sliceInflightDb.has(slice.name)) {\n return this.sliceInflightDb.get(slice.name)\n }\n\n const inFlight = this.loadComponent(slice.componentChunkName).then(\n component => {\n return {\n component: preferDefault(component),\n sliceContext: slice.result.sliceContext,\n data: slice.result.data,\n }\n }\n )\n\n this.sliceInflightDb.set(slice.name, inFlight)\n inFlight.then(results => {\n this.slicesDb.set(slice.name, results)\n this.sliceInflightDb.delete(slice.name)\n })\n\n return inFlight\n }\n\n return Promise.all(\n dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n ).then(slicesData => {\n const slices = []\n const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n slices.push({ name: sliceName, ...jsonPayload })\n for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n dedupedStaticQueryHashes.push(staticQueryHash)\n }\n }\n }\n\n const loadChunkPromises = [\n Promise.all(slices.map(loadSlice)),\n this.loadComponent(componentChunkName, `head`),\n ]\n\n if (!global.hasPartialHydration) {\n loadChunkPromises.push(this.loadComponent(componentChunkName))\n }\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n // get list of components to get\n const componentChunkPromises = Promise.all(loadChunkPromises).then(\n components => {\n const [sliceComponents, headComponent, pageComponent] = components\n\n finalResult.createdAt = new Date()\n\n for (const sliceComponent of sliceComponents) {\n if (!sliceComponent || sliceComponent instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = sliceComponent\n }\n }\n\n if (\n !global.hasPartialHydration &&\n (!pageComponent || pageComponent instanceof Error)\n ) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = pageComponent\n }\n\n let pageResources\n\n if (finalResult.status !== PageResourceStatus.Error) {\n finalResult.status = PageResourceStatus.Success\n if (\n pageDataResponse.notFound === true ||\n rscDataResponse?.notFound === true\n ) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appDataResponse\n ? appDataResponse.webpackCompilationHash\n : ``,\n })\n\n if (typeof rscDataResponse?.payload === `string`) {\n pageResources = toPageResources(pageData, null, headComponent)\n\n pageResources.partialHydration = rscDataResponse.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(rscDataResponse.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n } else {\n pageResources = toPageResources(\n pageData,\n pageComponent,\n headComponent\n )\n }\n }\n\n // undefined if final result is an error\n return pageResources\n }\n )\n\n // get list of static queries to get\n const staticQueryBatchPromise = Promise.all(\n dedupedStaticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromises, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n ),\n prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n )\n }\n\n return (\n asyncRequires[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n\nexport function getSliceResults() {\n if (instance) {\n return instance.slicesDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n `html`,\n `body`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n serverData: input.serverData,\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid function\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in Head which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = createWarningForInvalidTag(tagName)\n warnOnce(warning)\n }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n\nexport function getValidHeadNodesAndAttributes(\n rootNode,\n htmlAndBodyAttributes = {\n html: {},\n body: {},\n }\n) {\n const seenIds = new Map()\n const validHeadNodes = []\n\n // Filter out non-element nodes before looping since we don't care about them\n for (const node of rootNode.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!isElementType(node)) continue\n\n if (isValidNodeName(nodeName)) {\n // and tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n if (nodeName === `html` || nodeName === `body`) {\n for (const attribute of node.attributes) {\n const isStyleAttribute = attribute.name === `style`\n\n // Merge attributes for same nodeName from previous loop iteration\n htmlAndBodyAttributes[nodeName] = {\n ...htmlAndBodyAttributes[nodeName],\n }\n\n if (!isStyleAttribute) {\n htmlAndBodyAttributes[nodeName][attribute.name] = attribute.value\n }\n\n // If there is already a style attribute, we need to merge them as otherwise the last one will \"win\"\n if (isStyleAttribute) {\n htmlAndBodyAttributes[nodeName].style = `${\n htmlAndBodyAttributes[nodeName]?.style\n ? htmlAndBodyAttributes[nodeName].style\n : ``\n }${attribute.value} `\n }\n }\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // // This is hack to make script tags work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n clonedNode = massageScript(clonedNode)\n }\n // Duplicate ids are not allowed in the head, so we need to dedupe them\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[\n indexOfPreviouslyInsertedNode\n ].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n } else {\n warnForInvalidTag(nodeName)\n }\n\n if (node.childNodes.length) {\n validHeadNodes.push(\n ...getValidHeadNodesAndAttributes(node, htmlAndBodyAttributes)\n .validHeadNodes\n )\n }\n }\n\n return { validHeadNodes, htmlAndBodyAttributes }\n}\n\nfunction massageScript(node) {\n const script = document.createElement(`script`)\n for (const attr of node.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = node.innerHTML\n\n return script\n}\n\nexport function isValidNodeName(nodeName) {\n return VALID_NODE_NAMES.includes(nodeName)\n}\n/*\n * For Head, we only care about element nodes(type = 1), so this util is used to skip over non-element nodes\n * For Node type, see https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n */\nexport function isElementType(node) {\n return node.nodeType === 1\n}\n\n/**\n * Removes all the head elements that were added by `Head`\n */\nexport function removePrevHeadElements() {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nexport function applyHtmlAndBodyAttributes(htmlAndBodyAttributes) {\n if (!htmlAndBodyAttributes) return\n\n const { html, body } = htmlAndBodyAttributes\n\n const htmlElement = document.querySelector(`html`)\n if (htmlElement) {\n Object.entries(html).forEach(([attributeName, attributeValue]) => {\n htmlElement.setAttribute(attributeName, attributeValue)\n })\n }\n\n const bodyElement = document.querySelector(`body`)\n if (bodyElement) {\n Object.entries(body).forEach(([attributeName, attributeValue]) => {\n bodyElement.setAttribute(attributeName, attributeValue)\n })\n }\n}\n\nexport function removeHtmlAndBodyAttributes(htmlAndBodyattributeList) {\n if (!htmlAndBodyattributeList) return\n\n const { html, body } = htmlAndBodyattributeList\n\n if (html) {\n const htmlElement = document.querySelector(`html`)\n html.forEach(attributeName => {\n if (htmlElement) {\n htmlElement.removeAttribute(attributeName)\n }\n })\n }\n\n if (body) {\n const bodyElement = document.querySelector(`body`)\n body.forEach(attributeName => {\n if (bodyElement) {\n bodyElement.removeAttribute(attributeName)\n }\n })\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport {\n headExportValidator,\n filterHeadProps,\n diffNodes,\n getValidHeadNodesAndAttributes,\n removePrevHeadElements,\n applyHtmlAndBodyAttributes,\n removeHtmlAndBodyAttributes,\n} from \"./utils\"\nimport { apiRunner } from \"../api-runner-browser\"\n\nconst hiddenRoot = document.createElement(`div`)\nconst keysOfHtmlAndBodyAttributes = {\n html: [],\n body: [],\n}\n\nconst onHeadRendered = () => {\n const { validHeadNodes, htmlAndBodyAttributes } =\n getValidHeadNodesAndAttributes(hiddenRoot)\n\n keysOfHtmlAndBodyAttributes.html = Object.keys(htmlAndBodyAttributes.html)\n keysOfHtmlAndBodyAttributes.body = Object.keys(htmlAndBodyAttributes.body)\n\n applyHtmlAndBodyAttributes(htmlAndBodyAttributes)\n\n /**\n * The rest of the code block below is a diffing mechanism to ensure that\n * the head elements aren't duplicted on every re-render.\n */\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // sigh ... and elements are not valid descedents of
(our hidden element)\n // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n // instead we continue to render to
, and just silence warnings for and elements\n // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n const originalConsoleError = console.error.bind(console)\n console.error = (...args) => {\n if (\n Array.isArray(args) &&\n args.length >= 2 &&\n args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n (args[1] === `` || args[1] === ``)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate after react-refresh\n updates our hidden element.\n */\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const HeadElement = (\n \n )\n\n const WrapHeadElement = apiRunner(\n `wrapRootElement`,\n { element: HeadElement },\n HeadElement,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n \n \n {WrapHeadElement}\n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport {\n navigate as reachNavigate,\n globalHistory,\n} from \"@gatsbyjs/reach-router\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(nextProps) {\n if (compareLocationProps(this.props.location, nextProps.location)) {\n onPreRouteUpdate(nextProps.location, this.props.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./static-query\"\nimport {\n SlicesMapContext,\n SlicesContext,\n SlicesResultsContext,\n} from \"./slice/context\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n getSliceResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n const slicesContext = {\n renderEnvironment: `browser`,\n }\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n \n \n \n \n \n {children}\n \n \n \n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n const reactDomClient = require(`react-dom/client`)\n\n const render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n return { render, hydrate }\n}\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n SlicesResultsContext,\n SlicesContext,\n SlicesMapContext,\n SlicesPropsContext,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n console.warn(\n `The component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n )\n warnedAboutStaticQuery = true\n }\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n /* eslint-disable no-undef */\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","const listOfMetricsSend = new Set();\nfunction debounce(fn, timeout) {\n let timer = null;\n return function (...args) {\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(fn, timeout, ...args);\n };\n}\nfunction sendWebVitals(dataLayerName = `dataLayer`) {\n const win = window;\n function sendData(data) {\n if (listOfMetricsSend.has(data.name)) {\n return;\n }\n listOfMetricsSend.add(data.name);\n sendToGTM(data, win[dataLayerName]);\n }\n return import(`web-vitals/base`).then(({\n getLCP,\n getFID,\n getCLS\n }) => {\n const debouncedCLS = debounce(sendData, 3000);\n // we don't need to debounce FID - we send it when it happens\n const debouncedFID = sendData;\n // LCP can occur multiple times so we debounce it\n const debouncedLCP = debounce(sendData, 3000);\n\n // With the true flag, we measure all previous occurences too, in case we start listening to late.\n getCLS(debouncedCLS, true);\n getFID(debouncedFID, true);\n getLCP(debouncedLCP, true);\n });\n}\nfunction sendToGTM({\n name,\n value,\n id\n}, dataLayer) {\n dataLayer.push({\n event: `core-web-vitals`,\n webVitalsMeasurement: {\n name: name,\n // The `id` value will be unique to the current page load. When sending\n // multiple values from the same page (e.g. for CLS), Google Analytics can\n // compute a total by grouping on this ID (note: requires `eventLabel` to\n // be a dimension in your report).\n id,\n // Google Analytics metrics must be integers, so the value is rounded.\n // For CLS the value is first multiplied by 1000 for greater precision\n // (note: increase the multiplier for greater precision if needed).\n value: Math.round(name === `CLS` ? value * 1000 : value)\n }\n });\n}\nexport function onRouteUpdate(_, pluginOptions) {\n if (process.env.NODE_ENV === `production` || pluginOptions.includeInDevelopment) {\n // wrap inside a timeout to ensure the title has properly been changed\n setTimeout(() => {\n const data = pluginOptions.dataLayerName ? window[pluginOptions.dataLayerName] : window.dataLayer;\n const eventName = pluginOptions.routeChangeEventName ? pluginOptions.routeChangeEventName : `gatsby-route-change`;\n data.push({\n event: eventName\n });\n }, 50);\n }\n}\nexport function onInitialClientRender(_, pluginOptions) {\n // we only load the polyfill in production so we can't enable it in development\n if (process.env.NODE_ENV === `production` && pluginOptions.enableWebVitalsTracking) {\n sendWebVitals(pluginOptions.dataLayerName);\n }\n}","import camelCase from \"camelcase\"\nimport type { IGatsbyImageData } from \"./index\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n 320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n duotone?: {\n highlight: string\n shadow: string\n opacity?: number\n }\n grayscale?: boolean\n rotate?: number\n trim?: number\n }\n jpgOptions?: Record\n pngOptions?: Record\n webpOptions?: Record\n avifOptions?: Record\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array\n outputPixelDensities?: Array\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array\n breakpoints?: Array\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array\n presentationWidth: number\n presentationHeight: number\n aspectRatio: number\n unscaledWidth: number\n}\n\nexport interface IImage {\n src: string\n width: number\n height: number\n format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n pluginName: string\n generateImageSource: (\n filename: string,\n width: number,\n height: number,\n format: ImageFormat,\n fit?: Fit,\n options?: Record\n ) => IImage\n layout?: Layout\n formats?: Array\n filename: string\n placeholderURL?: string\n width?: number\n height?: number\n sizes?: string\n reporter?: IReporter\n sourceMetadata?: { width: number; height: number; format: ImageFormat }\n fit?: Fit\n options?: Record\n breakpoints?: Array\n backgroundColor?: string\n aspectRatio?: number\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n switch (layout) {\n // If screen is wider than the max size, image width is the max size,\n // otherwise it's the width of the screen\n case `constrained`:\n return `(min-width: ${width}px) ${width}px, 100vw`\n\n // Image is always the same width, whatever the size of the screen\n case `fixed`:\n return `${width}px`\n\n // Image is always the width of the screen\n case `fullWidth`:\n return `100vw`\n\n default:\n return undefined\n }\n}\n\nexport const getSrcSet = (images: Array): string =>\n images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n const dot = filename.lastIndexOf(`.`)\n if (dot !== -1) {\n const ext = filename.slice(dot + 1)\n if (ext === `jpeg`) {\n return `jpg`\n }\n if (ext.length === 3 || ext.length === 4) {\n return ext as ImageFormat\n }\n }\n return undefined\n}\n\nexport function setDefaultDimensions(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageHelperArgs {\n let {\n layout = `constrained`,\n width,\n height,\n sourceMetadata,\n breakpoints,\n aspectRatio,\n formats = [`auto`, `webp`],\n } = args\n formats = formats.map(format => format.toLowerCase() as ImageFormat)\n layout = camelCase(layout) as Layout\n\n if (width && height) {\n return { ...args, formats, layout, aspectRatio: width / height }\n }\n if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) {\n aspectRatio = sourceMetadata.width / sourceMetadata.height\n }\n\n if (layout === `fullWidth`) {\n width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1]\n height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO))\n } else {\n if (!width) {\n if (height && aspectRatio) {\n width = height * aspectRatio\n } else if (sourceMetadata.width) {\n width = sourceMetadata.width\n } else if (height) {\n width = Math.round(height / DEFAULT_ASPECT_RATIO)\n } else {\n width = DEFAULT_FIXED_WIDTH\n }\n }\n\n if (aspectRatio && !height) {\n height = Math.round(width / aspectRatio)\n } else if (!aspectRatio) {\n aspectRatio = width / height\n }\n }\n return { ...args, width, height, aspectRatio, layout, formats }\n}\n\n/**\n * Use this for getting an image for the blurred placeholder. This ensures the\n * aspect ratio and crop match the main image\n */\nexport function getLowResolutionImageURL(\n args: IGatsbyImageHelperArgs,\n width = 20\n): string {\n args = setDefaultDimensions(args)\n const { generateImageSource, filename, aspectRatio } = args\n return generateImageSource(\n filename,\n width,\n Math.round(width / aspectRatio),\n args.sourceMetadata.format || `jpg`,\n args.fit,\n args.options\n )?.src\n}\n\nexport function generateImageData(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n args = setDefaultDimensions(args)\n\n let {\n pluginName,\n sourceMetadata,\n generateImageSource,\n layout,\n fit,\n options,\n width,\n height,\n filename,\n reporter = { warn },\n backgroundColor,\n placeholderURL,\n } = args\n\n if (!pluginName) {\n reporter.warn(\n `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n )\n }\n\n if (typeof generateImageSource !== `function`) {\n throw new Error(`generateImageSource must be a function`)\n }\n\n if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n // No metadata means we let the CDN handle max size etc, aspect ratio etc\n sourceMetadata = {\n width,\n height,\n format: sourceMetadata?.format || formatFromFilename(filename) || `auto`,\n }\n } else if (!sourceMetadata.format) {\n sourceMetadata.format = formatFromFilename(filename)\n }\n\n const formats = new Set(args.formats)\n\n if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n formats.delete(`auto`)\n formats.delete(``)\n formats.add(sourceMetadata.format)\n }\n\n if (formats.has(`jpg`) && formats.has(`png`)) {\n reporter.warn(\n `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n )\n if (sourceMetadata.format === `jpg`) {\n formats.delete(`png`)\n } else {\n formats.delete(`jpg`)\n }\n }\n\n const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n const result: IGatsbyImageData[\"images\"] = {\n sources: [],\n }\n\n let sizes = args.sizes\n if (!sizes) {\n sizes = getSizes(imageSizes.presentationWidth, layout)\n }\n\n formats.forEach(format => {\n const images = imageSizes.sizes\n .map(size => {\n const imageSrc = generateImageSource(\n filename,\n size,\n Math.round(size / imageSizes.aspectRatio),\n format,\n fit,\n options\n )\n if (\n !imageSrc?.width ||\n !imageSrc.height ||\n !imageSrc.src ||\n !imageSrc.format\n ) {\n reporter.warn(\n `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n )\n return undefined\n }\n return imageSrc\n })\n .filter(Boolean)\n\n if (format === `jpg` || format === `png` || format === `auto`) {\n const unscaled =\n images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n if (unscaled) {\n result.fallback = {\n src: unscaled.src,\n srcSet: getSrcSet(images),\n sizes,\n }\n }\n } else {\n result.sources?.push({\n srcSet: getSrcSet(images),\n sizes,\n type: `image/${format}`,\n })\n }\n })\n\n const imageProps: Partial = {\n images: result,\n layout,\n backgroundColor,\n }\n\n if (placeholderURL) {\n imageProps.placeholder = { fallback: placeholderURL }\n }\n\n switch (layout) {\n case `fixed`:\n imageProps.width = imageSizes.presentationWidth\n imageProps.height = imageSizes.presentationHeight\n break\n\n case `fullWidth`:\n imageProps.width = 1\n imageProps.height = 1 / imageSizes.aspectRatio\n break\n\n case `constrained`:\n imageProps.width = args.width || imageSizes.presentationWidth || 1\n imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n }\n\n return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array): Array =>\n Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n const {\n width,\n height,\n filename,\n layout = `constrained`,\n sourceMetadata: imgDimensions,\n reporter = { warn },\n breakpoints = DEFAULT_BREAKPOINTS,\n } = args\n\n // check that all dimensions provided are positive\n const userDimensions = { width, height }\n const erroneousUserDimensions = Object.entries(userDimensions).filter(\n ([_, size]) => typeof size === `number` && size < 1\n )\n if (erroneousUserDimensions.length) {\n throw new Error(\n `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n .map(dim => dim.join(`: `))\n .join(`, `)}`\n )\n }\n\n if (layout === `fixed`) {\n return fixedImageSizes(args)\n } else if (layout === `constrained`) {\n return responsiveImageSizes(args)\n } else if (layout === `fullWidth`) {\n return responsiveImageSizes({ breakpoints, ...args })\n } else {\n reporter.warn(\n `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}`\n )\n return {\n sizes: [imgDimensions.width],\n presentationWidth: imgDimensions.width,\n presentationHeight: imgDimensions.height,\n aspectRatio: imgDimensions.width / imgDimensions.height,\n unscaledWidth: imgDimensions.width,\n }\n }\n}\nexport function fixedImageSizes({\n filename,\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n if (!width) {\n if (!height) {\n width = DEFAULT_FIXED_WIDTH\n } else {\n width = Math.round(height * aspectRatio)\n }\n } else if (!height) {\n height = Math.round(width / aspectRatio)\n }\n\n const originalWidth = width // will use this for presentationWidth, don't want to lose it\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n\n // If the image is smaller than requested, warn the user that it's being processed as such\n // print out this message with the necessary information before we overwrite it for sizing\n if (isTopSizeOverriden) {\n const fixedDimension = imgDimensions.width < width ? `width` : `height`\n reporter.warn(`\nThe requested ${fixedDimension} \"${\n fixedDimension === `width` ? width : height\n }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n imgDimensions[fixedDimension]\n }px. If possible, replace the current image with a larger one.`)\n\n if (fixedDimension === `width`) {\n width = imgDimensions.width\n height = Math.round(width / aspectRatio)\n } else {\n height = imgDimensions.height\n width = height * aspectRatio\n }\n }\n\n const sizes = densities\n .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n .map(density => Math.round(density * (width as number)))\n .filter(size => size <= imgDimensions.width)\n\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function responsiveImageSizes({\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n breakpoints,\n layout,\n}: IImageSizeArgs): IImageSizes {\n let sizes\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n width = width && Math.min(width, imgDimensions.width)\n height = height && Math.min(height, imgDimensions.height)\n\n // Case 2: neither width or height were passed in, use default size\n if (!width && !height) {\n width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n height = width / aspectRatio\n }\n\n // if it still hasn't been found, calculate width from the derived height.\n // TS isn't smart enough to realise the type for height has been narrowed here\n if (!width) {\n width = (height as number) * aspectRatio\n }\n\n const originalWidth = width\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n if (isTopSizeOverriden) {\n width = imgDimensions.width\n height = imgDimensions.height\n }\n\n width = Math.round(width)\n\n if (breakpoints?.length > 0) {\n sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n // If a larger breakpoint has been filtered-out, add the actual image width instead\n if (\n sizes.length < breakpoints.length &&\n !sizes.includes(imgDimensions.width)\n ) {\n sizes.push(imgDimensions.width)\n }\n } else {\n sizes = densities.map(density => Math.round(density * (width as number)))\n sizes = sizes.filter(size => size <= imgDimensions.width)\n }\n\n // ensure that the size passed in is included in the final output\n if (layout === `constrained` && !sizes.includes(width)) {\n sizes.push(width)\n }\n sizes = sizes.sort(sortNumeric)\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function getDimensionsAndAspectRatio(\n dimensions,\n options\n): { width: number; height: number; aspectRatio: number } {\n // Calculate the eventual width/height of the image.\n const imageAspectRatio = dimensions.width / dimensions.height\n\n let width = options.width\n let height = options.height\n\n switch (options.fit) {\n case `fill`: {\n width = options.width ? options.width : dimensions.width\n height = options.height ? options.height : dimensions.height\n break\n }\n case `inside`: {\n const widthOption = options.width\n ? options.width\n : Number.MAX_SAFE_INTEGER\n const heightOption = options.height\n ? options.height\n : Number.MAX_SAFE_INTEGER\n\n width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.min(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n case `outside`: {\n const widthOption = options.width ? options.width : 0\n const heightOption = options.height ? options.height : 0\n\n width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.max(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n\n default: {\n if (options.width && !options.height) {\n width = options.width\n height = Math.round(options.width / imageAspectRatio)\n }\n\n if (options.height && !options.width) {\n width = Math.round(options.height * imageAspectRatio)\n height = options.height\n }\n }\n }\n\n return {\n width,\n height,\n aspectRatio: width / height,\n }\n}\n","/* global GATSBY___IMAGE */\nimport { generateImageData, EVERY_BREAKPOINT } from \"../image-utils\"\nimport type { CSSProperties, HTMLAttributes, ImgHTMLAttributes } from \"react\"\nimport type { Node } from \"gatsby\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport type {\n IGatsbyImageHelperArgs,\n Layout,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n typeof HTMLImageElement !== `undefined` &&\n `loading` in HTMLImageElement.prototype\n\nexport function gatsbyImageIsInstalled(): boolean {\n return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE\n}\n\nexport type IGatsbyImageDataParent = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type IGatsbyImageParent = T & {\n gatsbyImage: IGatsbyImageData\n}\nexport type FileNode = Partial & {\n childImageSharp?: IGatsbyImageDataParent>\n}\n\nconst isGatsbyImageData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageData | any\n): node is IGatsbyImageData =>\n // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object\n Boolean(node?.images?.fallback?.src)\n\nconst isGatsbyImageDataParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageDataParent | any\n): node is IGatsbyImageDataParent => Boolean(node?.gatsbyImageData)\n\nconst isGatsbyImageParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageParent | any\n): node is IGatsbyImageParent => Boolean(node?.gatsbyImage)\n\nexport type ImageDataLike =\n | FileNode\n | IGatsbyImageDataParent\n | IGatsbyImageParent\n | IGatsbyImageData\n\nexport const getImage = (\n node: ImageDataLike | null\n): IGatsbyImageData | undefined => {\n // This checks both for gatsbyImageData and gatsbyImage\n if (isGatsbyImageData(node)) {\n return node\n }\n // gatsbyImageData GraphQL field\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\n }\n // gatsbyImage GraphQL field for Gatsby's Image CDN service\n if (isGatsbyImageParent(node)) {\n return node.gatsbyImage\n }\n return node?.childImageSharp?.gatsbyImageData\n}\n\nexport const getSrc = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.src\n\nexport const getSrcSet = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.srcSet\n\nexport function getWrapperProps(\n width: number,\n height: number,\n layout: Layout\n): Pick, \"className\" | \"style\"> & {\n \"data-gatsby-image-wrapper\": string\n} {\n const wrapperStyle: CSSProperties = {}\n\n let className = `gatsby-image-wrapper`\n\n // If the plugin isn't installed we need to apply the styles inline\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.position = `relative`\n wrapperStyle.overflow = `hidden`\n }\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n } else if (layout === `constrained`) {\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.display = `inline-block`\n wrapperStyle.verticalAlign = `top`\n }\n className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n }\n\n return {\n className,\n \"data-gatsby-image-wrapper\": ``,\n style: wrapperStyle,\n }\n}\n\nexport interface IUrlBuilderArgs {\n width: number\n height: number\n baseUrl: string\n format: ImageFormat\n options: OptionsType\n}\nexport interface IGetImageDataArgs> {\n baseUrl: string\n /**\n * For constrained and fixed images, the size of the image element\n */\n width?: number\n height?: number\n /**\n * If available, pass the source image width and height\n */\n sourceWidth?: number\n sourceHeight?: number\n /**\n * If only one dimension is passed, then this will be used to calculate the other.\n */\n aspectRatio?: number\n layout?: Layout\n /**\n * Returns a URL based on the passed arguments. Should be a pure function\n */\n urlBuilder: (args: IUrlBuilderArgs) => string\n\n /**\n * Should be a data URI\n */\n placeholderURL?: string\n backgroundColor?: string\n /**\n * Used in error messages etc\n */\n pluginName?: string\n\n /**\n * If you do not support auto-format, pass an array of image types here\n */\n formats?: Array\n\n breakpoints?: Array\n\n /**\n * Passed to the urlBuilder function\n */\n options?: OptionsType\n}\n\n/**\n * Use this hook to generate gatsby-plugin-image data in the browser.\n */\nexport function getImageData({\n baseUrl,\n urlBuilder,\n sourceWidth,\n sourceHeight,\n pluginName = `getImageData`,\n formats = [`auto`],\n breakpoints,\n options,\n ...props\n}: IGetImageDataArgs): IGatsbyImageData {\n if (\n !breakpoints?.length &&\n (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`)\n ) {\n breakpoints = EVERY_BREAKPOINT\n }\n const generateImageSource = (\n baseUrl: string,\n width: number,\n height?: number,\n format?: ImageFormat\n ): IImage => {\n return {\n width,\n height,\n format,\n src: urlBuilder({ baseUrl, width, height, options, format }),\n }\n }\n\n const sourceMetadata: IGatsbyImageHelperArgs[\"sourceMetadata\"] = {\n width: sourceWidth,\n height: sourceHeight,\n format: `auto`,\n }\n\n const args: IGatsbyImageHelperArgs = {\n ...props,\n pluginName,\n generateImageSource,\n filename: baseUrl,\n formats,\n breakpoints,\n sourceMetadata,\n }\n return generateImageData(args)\n}\n\nexport function getMainProps(\n isLoading: boolean,\n isLoaded: boolean,\n images: IGatsbyImageData[\"images\"],\n loading?: \"eager\" | \"lazy\",\n style: CSSProperties = {}\n): Partial {\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n transform: `translateZ(0)`,\n transition: `opacity 250ms linear`,\n width: `100%`,\n willChange: `opacity`,\n ...style,\n }\n }\n\n const result = {\n ...images,\n loading,\n shouldLoad: isLoading,\n \"data-main-image\": ``,\n style: {\n ...style,\n opacity: isLoaded ? 1 : 0,\n },\n }\n\n return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes &\n Pick & {\n \"data-placeholder-image\"?: string\n }\n\nexport function getPlaceholderProps(\n placeholder: PlaceholderImageAttrs | undefined,\n isLoaded: boolean,\n layout: Layout,\n width?: number,\n height?: number,\n backgroundColor?: string,\n objectFit?: CSSProperties[\"objectFit\"],\n objectPosition?: CSSProperties[\"objectPosition\"]\n): PlaceholderImageAttrs {\n const wrapperStyle: CSSProperties = {}\n\n if (backgroundColor) {\n wrapperStyle.backgroundColor = backgroundColor\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n wrapperStyle.backgroundColor = backgroundColor\n wrapperStyle.position = `relative`\n } else if (layout === `constrained`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (layout === `fullWidth`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n }\n }\n\n if (objectFit) {\n wrapperStyle.objectFit = objectFit\n }\n\n if (objectPosition) {\n wrapperStyle.objectPosition = objectPosition\n }\n const result: PlaceholderImageAttrs = {\n ...placeholder,\n \"aria-hidden\": true,\n \"data-placeholder-image\": ``,\n style: {\n opacity: isLoaded ? 0 : 1,\n transition: `opacity 500ms linear`,\n ...wrapperStyle,\n },\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n result.style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n width: `100%`,\n }\n }\n\n return result\n}\n\nexport interface IArtDirectedImage {\n media: string\n image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function withArtDirection(\n defaultImage: IGatsbyImageData,\n artDirected: Array\n): IGatsbyImageData {\n const { images, placeholder, ...props } = defaultImage\n const output: IGatsbyImageData = {\n ...props,\n images: {\n ...images,\n sources: [],\n },\n placeholder: placeholder && {\n ...placeholder,\n sources: [],\n },\n }\n\n artDirected.forEach(({ media, image }) => {\n if (!media) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(\n \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n )\n }\n return\n }\n\n if (\n image.layout !== defaultImage.layout &&\n process.env.NODE_ENV === `development`\n ) {\n console.warn(\n `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n )\n }\n\n output.images.sources.push(\n ...image.images.sources.map(source => {\n return { ...source, media }\n }),\n {\n media,\n srcSet: image.images.fallback.srcSet,\n }\n )\n\n if (!output.placeholder) {\n return\n }\n\n output.placeholder.sources.push({\n media,\n srcSet: image.placeholder.fallback,\n })\n })\n output.images.sources.push(...images.sources)\n if (placeholder?.sources) {\n output.placeholder?.sources.push(...placeholder.sources)\n }\n return output\n}\n","import React, { Fragment, FunctionComponent, PropsWithChildren } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n layout: Layout\n width: number\n height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n \n)\n\nexport function getSizer(\n layout: Layout,\n width: number,\n height: number\n): string {\n let sizer = ``\n if (layout === `fullWidth`) {\n sizer = `
`\n }\n\n if (layout === `constrained`) {\n sizer = `
\"\"
`\n }\n\n return sizer\n}\n\nconst Sizer: FunctionComponent = function Sizer({\n layout,\n width,\n height,\n}) {\n if (layout === `fullWidth`) {\n return (\n
\n )\n }\n\n if (layout === `constrained`) {\n return (\n
\n \n
\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent<\n PropsWithChildren\n> = function LayoutWrapper({ children, ...props }) {\n return (\n \n \n {children}\n\n {SERVER ? : null}\n \n )\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\n\nexport interface IResponsiveImageProps {\n sizes?: string\n srcSet: string\n}\n\nexport type SourceProps = IResponsiveImageProps &\n (\n | {\n media: string\n type?: string\n }\n | {\n media?: string\n type: string\n }\n )\n\ntype FallbackProps = { src: string } & Partial\n\ntype ImageProps = ImgHTMLAttributes & {\n src: string\n alt: string\n shouldLoad: boolean\n}\n\nexport type PictureProps = ImgHTMLAttributes & {\n fallback?: FallbackProps\n sources?: Array\n alt: string\n shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent = function Image({\n src,\n srcSet,\n loading,\n alt = ``,\n shouldLoad,\n ...props\n}) {\n return (\n \n )\n}\n\nexport const Picture: React.FC = function Picture({\n fallback,\n sources = [],\n shouldLoad = true,\n ...props\n}) {\n const sizes = props.sizes || fallback?.sizes\n const fallbackImage = (\n \n )\n\n if (!sources.length) {\n return fallbackImage\n }\n\n return (\n \n {sources.map(({ media, srcSet, type }) => (\n \n ))}\n {fallbackImage}\n \n )\n}\n\nImage.propTypes = {\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string,\n shouldLoad: PropTypes.bool,\n}\n\nPicture.displayName = `Picture`\nPicture.propTypes = {\n alt: PropTypes.string.isRequired,\n shouldLoad: PropTypes.bool,\n fallback: PropTypes.exact({\n src: PropTypes.string.isRequired,\n srcSet: PropTypes.string,\n sizes: PropTypes.string,\n }),\n sources: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.exact({\n media: PropTypes.string.isRequired,\n type: PropTypes.string,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n PropTypes.exact({\n media: PropTypes.string,\n type: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n ])\n ),\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\nimport { Picture, SourceProps } from \"./picture\"\n\nexport type PlaceholderProps = ImgHTMLAttributes & {\n fallback?: string\n sources?: Array\n}\n\nexport const Placeholder: FunctionComponent =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n \n )\n } else {\n return
\n }\n }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n fallback: PropTypes.string,\n sources: Picture.propTypes?.sources,\n alt: function (props, propName, componentName): Error | null {\n if (!props[propName]) {\n return null\n }\n\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage: React.FC = function MainImage(props) {\n return (\n <>\n \n \n \n )\n}\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React from \"react\"\nimport { getWrapperProps, getMainProps, getPlaceholderProps } from \"./hooks\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage, MainImageProps } from \"./main-image\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport PropTypes from \"prop-types\"\nimport type { FunctionComponent, WeakValidationMap } from \"react\"\nimport type { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage({\n as = `div`,\n className,\n class: preactClass,\n style,\n image,\n loading = `lazy`,\n imgClassName,\n imgStyle,\n backgroundColor,\n objectFit,\n objectPosition,\n ...props\n }) {\n if (!image) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n return null\n }\n\n if (preactClass) {\n className = preactClass\n }\n\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: placeholderBackgroundColor,\n } = image\n\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n const cleanedImages: IGatsbyImageData[\"images\"] = {\n fallback: undefined,\n sources: [],\n }\n if (images.fallback) {\n cleanedImages.fallback = {\n ...images.fallback,\n srcSet: images.fallback.srcSet\n ? removeNewLines(images.fallback.srcSet)\n : undefined,\n }\n }\n\n if (images.sources) {\n cleanedImages.sources = images.sources.map(source => {\n return {\n ...source,\n srcSet: removeNewLines(source.srcSet),\n }\n })\n }\n\n return React.createElement(\n as,\n {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n },\n \n \n\n )}\n // When eager is set we want to start the isLoading state on true (we want to load the img without react)\n {...getMainProps(\n loading === `eager`,\n false,\n cleanedImages,\n loading,\n imgStyle\n )}\n />\n \n )\n }\n\nexport const altValidator: PropTypes.Validator = (\n props: GatsbyImageProps,\n propName,\n componentName,\n ...rest\n): Error | undefined => {\n if (!props.alt && props.alt !== ``) {\n return new Error(\n `The \"alt\" prop is required in ${componentName}. If the image is purely presentational then pass an empty string: e.g. alt=\"\". Learn more: https://a11y-style-guide.com/style-guide/section-media.html`\n )\n }\n\n return PropTypes.string(props, propName, componentName, ...rest)\n}\n\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap\n","import {\n createElement,\n memo,\n useMemo,\n useEffect,\n useLayoutEffect,\n useRef,\n} from \"react\"\nimport {\n getWrapperProps,\n gatsbyImageIsInstalled,\n hasNativeLazyLoadSupport,\n} from \"./hooks\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport type {\n FC,\n ElementType,\n FunctionComponent,\n ImgHTMLAttributes,\n CSSProperties,\n ReactEventHandler,\n} from \"react\"\nimport type { renderImageToString } from \"./lazy-hydrate\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { Layout } from \"../image-utils\"\n\nconst imageCache = new Set()\nlet renderImageToStringPromise\nlet renderImage: typeof renderImageToString | undefined\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface GatsbyImageProps\n extends Omit<\n ImgHTMLAttributes,\n \"placeholder\" | \"onLoad\" | \"src\" | \"srcSet\" | \"width\" | \"height\"\n > {\n alt: string\n as?: ElementType\n className?: string\n class?: string\n imgClassName?: string\n image: IGatsbyImageData\n imgStyle?: CSSProperties\n backgroundColor?: string\n objectFit?: CSSProperties[\"objectFit\"]\n objectPosition?: CSSProperties[\"objectPosition\"]\n onLoad?: (props: { wasCached: boolean }) => void\n onError?: ReactEventHandler\n onStartLoad?: (props: { wasCached: boolean }) => void\n}\n\nexport interface IGatsbyImageData {\n layout: Layout\n width: number\n height: number\n backgroundColor?: string\n images: Pick\n placeholder?: Pick\n}\n\nconst GatsbyImageHydrator: FC = function GatsbyImageHydrator({\n as = `div`,\n image,\n style,\n backgroundColor,\n className,\n class: preactClass,\n onStartLoad,\n onLoad,\n onError,\n ...props\n}) {\n const { width, height, layout } = image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n const root = useRef()\n const cacheKey = useMemo(() => JSON.stringify(image.images), [image.images])\n\n // Preact uses class instead of className so we need to check for both\n if (preactClass) {\n className = preactClass\n }\n\n const sizer = getSizer(layout, width, height)\n\n useEffect(() => {\n if (!renderImageToStringPromise) {\n renderImageToStringPromise = import(`./lazy-hydrate`).then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n renderImage = renderImageToString\n\n return {\n renderImageToString,\n swapPlaceholderImage,\n }\n }\n )\n }\n\n // The plugin image component is a bit special where if it's server-side rendered, we add extra script tags to support lazy-loading without\n // In this case we stop hydration but fire the correct events.\n const ssrImage = root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n if (ssrImage && hasNativeLazyLoadSupport()) {\n if (ssrImage.complete) {\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n } else {\n onStartLoad?.({\n wasCached: true,\n })\n\n ssrImage.addEventListener(`load`, function onLoadListener() {\n ssrImage.removeEventListener(`load`, onLoadListener)\n\n onLoad?.({\n wasCached: true,\n })\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n })\n }\n\n imageCache.add(cacheKey)\n\n return\n }\n\n if (renderImage && imageCache.has(cacheKey)) {\n return\n }\n\n let animationFrame\n let cleanupCallback\n renderImageToStringPromise.then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n if (!root.current) {\n return\n }\n\n root.current.innerHTML = renderImageToString({\n isLoading: true,\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n if (!imageCache.has(cacheKey)) {\n animationFrame = requestAnimationFrame(() => {\n if (root.current) {\n cleanupCallback = swapPlaceholderImage(\n root.current,\n cacheKey,\n imageCache,\n style,\n onStartLoad,\n onLoad,\n onError\n )\n }\n })\n }\n }\n )\n\n // eslint-disable-next-line consistent-return\n return (): void => {\n if (animationFrame) {\n cancelAnimationFrame(animationFrame)\n }\n if (cleanupCallback) {\n cleanupCallback()\n }\n }\n }, [image])\n\n // useLayoutEffect is ran before React commits to the DOM. This allows us to make sure our HTML is using our cached image version\n useLayoutEffect(() => {\n if (imageCache.has(cacheKey) && renderImage) {\n root.current.innerHTML = renderImage({\n isLoading: imageCache.has(cacheKey),\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n }\n }, [image])\n\n // By keeping all props equal React will keep the component in the DOM\n return createElement(as, {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n ref: root,\n dangerouslySetInnerHTML: {\n __html: sizer,\n },\n suppressHydrationWarning: true,\n })\n}\n\nexport const GatsbyImage: FunctionComponent = memo(\n function GatsbyImage(props) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n\n return null\n }\n\n if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n console.warn(\n `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n )\n }\n\n return createElement(GatsbyImageHydrator, props)\n }\n)\n\nGatsbyImage.propTypes = propTypes\nGatsbyImage.displayName = `GatsbyImage`\n","import React, { FunctionComponent, ReactElement } from \"react\"\nimport {\n altValidator,\n GatsbyImage as GatsbyImageServer,\n} from \"./gatsby-image.server\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport PropTypes from \"prop-types\"\nimport { ISharpGatsbyImageArgs } from \"../image-utils\"\n\nexport interface IStaticImageProps\n extends Omit,\n Omit {\n src: string\n filename?: string\n}\n\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nexport function _getStaticImage(\n GatsbyImage: FunctionComponent\n): React.FC {\n return function StaticImage({\n src,\n __imageData: imageData,\n __error,\n // We extract these because they're not meant to be passed-down to GatsbyImage\n /* eslint-disable @typescript-eslint/no-unused-vars */\n width,\n height,\n aspectRatio,\n tracedSVGOptions,\n placeholder,\n formats,\n quality,\n transformOptions,\n jpgOptions,\n pngOptions,\n webpOptions,\n avifOptions,\n blurredOptions,\n breakpoints,\n outputPixelDensities,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n }): ReactElement {\n if (__error) {\n console.warn(__error)\n }\n\n if (imageData) {\n return \n }\n console.warn(`Image not loaded`, src)\n if (!__error && process.env.NODE_ENV === `development`) {\n console.warn(\n `Please ensure that \"gatsby-plugin-image\" is included in the plugins array in gatsby-config.js, and that your version of gatsby is at least 2.24.78`\n )\n }\n return null\n }\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator = (\n props: IStaticImageProps & IPrivateProps,\n propName: keyof IStaticImageProps & IPrivateProps,\n ...rest\n) => {\n if (\n props.layout === `fullWidth` &&\n (propName === `width` || propName === `height`) &&\n props[propName]\n ) {\n return new Error(\n `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n )\n }\n return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n src: PropTypes.string.isRequired,\n alt: altValidator,\n width: checkDimensionProps,\n height: checkDimensionProps,\n sizes: PropTypes.string,\n layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n if (props.layout === undefined) {\n return undefined\n }\n if (validLayouts.has(props.layout)) {\n return undefined\n }\n\n return new Error(\n `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n )\n },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n GatsbyImage as GatsbyImageBrowser,\n IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n _getStaticImage,\n propTypes,\n IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\";\n\n// when we don't have localisation in our manifest, we tree shake everything away\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _gatsby = require(\"gatsby\");\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n return pathname.startsWith(startUrl);\n });\n if (!localizedManifest) {\n return defaultFilename;\n }\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\nexports.default = _default;","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"copyright-module--wrapper--583d4\"};","import { useAccessibility } from '../../hooks';\n\nimport styles from './copyright.module.scss';\n\nexport const Copyright = () => {\n const accessibility = useAccessibility();\n const currentYear = new Date().getUTCFullYear();\n\n return (\n \n {currentYear}\n {accessibility?.flatData.companyName}\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"nav-item-module--wrapper--b36a2\",\"active\":\"nav-item-module--active--131f4\",\"text\":\"nav-item-module--text--a11ef\"};","import { Link } from 'gatsby';\nimport { useEffect, useRef } from 'react';\nimport type { HTMLAttributes } from 'react';\n\nimport { RovingIndexItem } from '../../components/';\nimport {\n useClassName,\n useMenuItem,\n useRovingIndex,\n useTranslate,\n} from '../../hooks';\n\nimport styles from './nav-item.module.scss';\n\ntype Props = HTMLAttributes & {\n page: Queries.Squidex_Pages;\n};\n\nexport const NavItem = ({ page, className }: Props) => {\n const menuItem = useMenuItem();\n const translate = useTranslate();\n const wrapperClassName = useClassName([styles.wrapper, className]);\n\n const path = translate(page.data.path);\n const title = translate(page.data.title);\n\n return (\n \n {(rovingItem) => (\n \n {title}\n \n )}\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"nav-items-module--wrapper--410fb\",\"item\":\"nav-items-module--item--7ec5c\"};","import type { HTMLAttributes } from 'react';\n\nimport { RovingIndexContainer } from '../../components/';\nimport { useClassName } from '../../hooks';\n\nimport { NavItem } from './nav-item';\nimport styles from './nav-items.module.scss';\n\nexport type Props = HTMLAttributes & {\n pages: readonly Queries.Squidex_Pages[];\n};\n\nexport const NavItems = ({ pages, className, ...restProps }: Props) => {\n const wrapperClassName = useClassName([styles.wrapper, className]);\n\n return (\n \n {(rovingContainer) => (\n
    \n {pages.map((page) => (\n
  • \n \n
  • \n ))}\n
\n )}\n
\n );\n};\n","import {\n useAccessibility,\n useMenu,\n usePagesByView,\n useTranslate,\n} from '../../hooks';\n\nimport { NavItems } from './nav-items';\n\nexport const Nav = () => {\n const translate = useTranslate();\n const accessibility = useAccessibility();\n const pages = usePagesByView(`footer`);\n\n const menuProps = useMenu({\n orientation: `horizontal`,\n label: translate(accessibility?.data.menuFooterLabel),\n });\n\n return ;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"footer-module--wrapper--3d244\",\"nav\":\"footer-module--nav--7a0cd\"};","import { Copyright } from './footer/copyright';\nimport { Nav } from './footer/nav';\nimport styles from './footer.module.scss';\n\nexport const Footer = () => {\n return (\n
\n
\n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"language-switcher-module--wrapper--96771\",\"item\":\"language-switcher-module--item--314cf\",\"active\":\"language-switcher-module--active--f73c3\"};","import { Link } from 'gatsby';\n\nimport {\n Languages,\n RovingIndexContainer,\n RovingIndexItem,\n Text,\n} from '../../components';\n\nimport styles from './language-switcher.module.scss';\n\ntype Props = {\n isEnabled: boolean;\n};\n\nexport const LanguageSwitcher = ({ isEnabled }: Props) => (\n \n {(rovingContainer) => (\n
\n \n {({ href: to, isActive, ...language }) => (\n \n {(rovingItem) => (\n \n \n {language.lang}\n \n \n )}\n \n )}\n \n
\n )}\n
\n);\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"live-status-module--wrapper--f1b13\",\"footer\":\"live-status-module--footer--0251c\"};","import { Link } from 'gatsby';\nimport { Fragment } from 'react';\n\nimport {\n Slopes,\n Facilities,\n WeatherOverall,\n WebcamsPreview,\n} from '../../common';\nimport { Button, Divider, Trans } from '../../components';\nimport {\n useAccessibility,\n useActiveFacilities,\n useActiveSlopes,\n usePageByAlias,\n useTranslate,\n useWebcams,\n} from '../../hooks';\n\nimport styles from './live-status.module.scss';\n\n\nexport const LiveStatus = () => {\n const translate = useTranslate();\n const accessibility = useAccessibility();\n\n const webcams = useWebcams();\n const facilities = useActiveFacilities();\n const slopes = useActiveSlopes();\n const detailPage = usePageByAlias(`live-status`);\n\n return (\n
\n \n {facilities.length > 0 ? (\n \n \n \n \n ) : null}\n {slopes.length > 0 ? (\n \n \n \n \n ) : null}\n \n
\n \n
\n
\n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"live-toggle-module--wrapper--9091d\",\"holder\":\"live-toggle-module--holder--36547\",\"expanded\":\"live-toggle-module--expanded--9e46b\"};","import { forwardRef } from 'react';\nimport type { HTMLAttributes } from 'react';\n\nimport { Text, Trans } from '../../components';\nimport { useClassName, useLiveStatus } from '../../hooks';\n\nimport styles from './live-toggle.module.scss';\n\ntype Props = HTMLAttributes & {\n isExpanded: boolean;\n};\n\nexport const LiveToggle = forwardRef(\n ({ isExpanded, ...domProps }: Props, ref) => {\n const liveStatus = useLiveStatus();\n const wrapperClassName = useClassName([\n styles.wrapper,\n isExpanded ? styles.expanded : ``,\n ]);\n\n return (\n \n );\n },\n);\n\nLiveToggle.displayName = `LiveToggle`;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"menu-toggle-module--wrapper--41270\",\"svg\":\"menu-toggle-module--svg--bc40c\",\"open\":\"menu-toggle-module--open--e8444\",\"close\":\"menu-toggle-module--close--f9d9b\",\"upper\":\"menu-toggle-module--upper--12ecb\",\"lower\":\"menu-toggle-module--lower--672a4\",\"expanded\":\"menu-toggle-module--expanded--b259e\",\"left\":\"menu-toggle-module--left--8a024\",\"right\":\"menu-toggle-module--right--d3e44\"};","import { forwardRef } from 'react';\nimport type { HTMLAttributes } from 'react';\n\nimport { useClassName } from '../../hooks';\n\nimport styles from './menu-toggle.module.scss';\n\ntype Props = HTMLAttributes & {\n isExpanded: boolean;\n};\n\nexport const MenuToggle = forwardRef(\n ({ isExpanded, ...domProps }: Props, ref) => {\n const className = useClassName([\n styles.wrapper,\n isExpanded ? styles.expanded : ``,\n ]);\n\n return (\n \n );\n },\n);\n\nMenuToggle.displayName = `MenuToggle`;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"nav-item-module--wrapper--61e44\",\"level1\":\"nav-item-module--level1--b07a7\",\"level2\":\"nav-item-module--level2--156cf\",\"active\":\"nav-item-module--active--9edef\"};","import { Link } from 'gatsby';\nimport type { HTMLAttributes } from 'react';\n\nimport { RovingIndexItem, Text } from '../../components';\nimport { useClassName, useMenuItem, useTranslate } from '../../hooks';\n\nimport styles from './nav-item.module.scss';\n\ntype Props = HTMLAttributes & {\n page: Queries.Squidex_Pages;\n level?: number;\n};\n\nexport const NavItem = ({ page, className, level = 1 }: Props) => {\n const menuItem = useMenuItem();\n const translate = useTranslate();\n\n const wrapperClassName = useClassName([\n styles.wrapper,\n styles[`level${level}`],\n className,\n ]);\n\n const path = translate(page.data.path);\n const title = translate(page.data.title);\n const size = level === 1 ? `fs-3` : `fs-2`;\n\n return (\n \n {(rovingItem) => (\n \n \n {title}\n \n \n )}\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"nav-items-module--wrapper--2291a\",\"level1\":\"nav-items-module--level1--d2c3b\",\"item\":\"nav-items-module--item--e53df\",\"level2\":\"nav-items-module--level2--09952\"};","// extracted by mini-css-extract-plugin\nexport default {\"button\":\"nav-submenu-module--button--5f2c3\",\"wrapper\":\"nav-submenu-module--wrapper--3aaf8\",\"icon\":\"nav-submenu-module--icon--008a4\",\"items\":\"nav-submenu-module--items--6dcdf\",\"active\":\"nav-submenu-module--active--969d0\"};","import { Fragment, useState, useRef, useEffect } from 'react';\n\nimport { RovingIndexItem, Text } from '../../components';\nimport {\n useClassName,\n // useClickOutside,\n useSubmenu,\n useTranslate,\n} from '../../hooks';\nimport { MinusIcon, PlusIcon } from '../../icons';\n\nimport { NavItems } from './nav-items';\nimport type { Props as NavItemsProps } from './nav-items';\nimport styles from './nav-submenu.module.scss';\n\ntype Props = Omit & {\n parent: Queries.Squidex_Pages;\n};\n\nexport const NavSubmenu = ({\n parent,\n pages,\n level,\n className,\n ...navItemProps\n}: Props) => {\n const [isExpanded, setIsExpanded] = useState(false);\n\n const isExpandedRef = useRef(isExpanded);\n const navItemsRef = useRef(null);\n const rovingIndexRef = useRef(null);\n const buttonClassName = useClassName([className, styles.button]);\n\n const translate = useTranslate();\n\n const label = translate(parent.data.title);\n const { triggerProps, controlProps } = useSubmenu({\n label,\n isExpanded,\n onToggle: setIsExpanded,\n controlClassName: styles.items,\n controlExpandedClassName: useClassName([styles.items, styles.active]),\n });\n\n useEffect(() => {\n isExpandedRef.current = isExpanded;\n });\n\n // useClickOutside(navItemsRef, (target) => {\n // if (\n // !rovingIndexRef.current?.contains(target) &&\n // !rovingIndexRef.current?.isEqualNode(target)\n // ) {\n // setIsExpanded(false);\n // }\n // });\n\n return (\n \n {\n const { current: isExpanded } = isExpandedRef;\n\n switch (event.code) {\n case `Escape`:\n case `ArrowLeft`:\n if (isExpanded) {\n event.preventDefault();\n event.stopPropagation();\n setIsExpanded(false);\n rovingIndexRef.current?.focus();\n }\n break;\n case `Enter`:\n case `ArrowRight`:\n if (!isExpanded) {\n event.preventDefault();\n event.stopPropagation();\n setIsExpanded(true);\n }\n break;\n case `Tab`:\n if (isExpanded) {\n // close when navigating away\n setIsExpanded(false);\n }\n break;\n default:\n }\n },\n }}\n >\n {(rovingItem) => (\n \n )}\n \n \n \n );\n};\n","import { forwardRef } from 'react';\nimport type { HTMLAttributes } from 'react';\n\nimport { RovingIndexContainer } from '../../components';\nimport { useClassName, useFocusFirst, useForwardedRef } from '../../hooks';\n\nimport { NavItem } from './nav-item';\nimport styles from './nav-items.module.scss';\nimport { NavSubmenu } from './nav-submenu';\n\n\nexport type Props = HTMLAttributes & {\n pages: readonly Queries.Squidex_Pages[];\n isEnabled: boolean;\n level?: number;\n};\n\nexport const NavItems = forwardRef(function NavItems(\n { pages, isEnabled, level = 1, className, ...navItems }: Props,\n forwardedRef,\n) {\n const parentRef = useForwardedRef(forwardedRef);\n const wrapperClassName = useClassName([\n styles.wrapper,\n styles[`level${level}`],\n className,\n ]);\n\n useFocusFirst(parentRef, level > 1 && isEnabled);\n\n return (\n \n {(rovingContainer) => (\n
    \n {pages.map((page) => (\n
  • \n {page.referencingPagesContents?.length ? (\n \n ) : (\n \n )}\n
  • \n ))}\n
\n )}\n
\n );\n});\n","import {\n useAccessibility,\n useMenu,\n usePagesByView,\n useRootPages,\n useTranslate,\n} from '../../hooks';\n\nimport { NavItems } from './nav-items';\n\ntype Props = {\n isEnabled: boolean;\n};\n\nexport const Nav = ({ isEnabled }: Props) => {\n const translate = useTranslate();\n const rootPages = useRootPages();\n const accessibility = useAccessibility();\n\n const pages = usePagesByView(`main`, rootPages);\n\n const menuProps = useMenu({\n label: translate(accessibility?.data.menuMainLabel),\n });\n\n return ;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"logo-module--wrapper--2eb4a\",\"icon\":\"logo-module--icon--b53e1\"};","import { Link } from 'gatsby';\n\nimport { useAccessibility, usePageByAlias, useTranslate } from '../../hooks';\nimport { LogoIcon } from '../../icons';\n\nimport styles from './logo.module.scss';\n\nexport const Logo = () => {\n const translate = useTranslate();\n const accessibility = useAccessibility();\n const homePage = usePageByAlias(`home`);\n\n return (\n \n \n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"toolbar-module--wrapper--446fc\",\"logo\":\"toolbar-module--logo--fc4f3\",\"buttons\":\"toolbar-module--buttons--2f843\",\"button\":\"toolbar-module--button--c8d8c\",\"tickets\":\"toolbar-module--tickets--2f43e\",\"icon\":\"toolbar-module--icon--48991\"};","import type { ReactElement } from 'react';\n\nimport { RovingIndexContainer, RovingIndexItem } from '../../components';\nimport {\n useAccessibility,\n useLocale,\n usePageByAlias,\n useToolbar,\n useTranslate,\n} from '../../hooks';\nimport { TicketsIcon } from '../../icons';\n\nimport { Logo } from './logo';\nimport styles from './toolbar.module.scss';\n\ntype Props = {\n menuToggle: ReactElement;\n liveToggle: ReactElement;\n};\n\nexport const Toolbar = ({ menuToggle, liveToggle }: Props) => {\n const { locale } = useLocale();\n const translate = useTranslate();\n const accessibility = useAccessibility();\n const ticketPage = usePageByAlias(`tickets`);\n const { containerProps } = useToolbar({\n label: translate(accessibility?.data.quickInfoMenu),\n });\n\n return (\n
\n
\n \n
\n \n {(rovingContainer) => (\n
\n
\n \n {(rovingItem) => (\n \n )}\n \n
\n
\n \n {(rovingItem) => (\n \n \n \n )}\n \n
\n
\n \n {(rovingItem) => (\n \n )}\n \n
\n
\n )}\n
\n
\n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"header-module--wrapper--02c70\",\"overflow\":\"header-module--overflow--5f85e\",\"navbar\":\"header-module--navbar--0dcbe\",\"overlay\":\"header-module--overlay--5a7c8\",\"entering\":\"header-module--entering--0de24\",\"entered\":\"header-module--entered--e5612\",\"exiting\":\"header-module--exiting--6512f\",\"visible\":\"header-module--visible--f6b83\",\"menu-overlay\":\"header-module--menu-overlay--6a377\",\"menuOverlay\":\"header-module--menu-overlay--6a377\",\"live-overlay\":\"header-module--live-overlay--91928\",\"liveOverlay\":\"header-module--live-overlay--91928\",\"menu\":\"header-module--menu--19b16\",\"nav\":\"header-module--nav--13aca\",\"footer\":\"header-module--footer--f8bfd\"};","import { useEffect, useRef } from 'react';\nimport type { MouseEvent } from 'react';\n\nimport { Container } from '../components';\nimport {\n useAccessibility,\n useDisclosure,\n useTranslate,\n useScrollLock,\n useClassName,\n useTransition,\n useLiveStatus,\n} from '../hooks';\n\nimport { LanguageSwitcher } from './header/language-switcher';\nimport { LiveStatus } from './header/live-status';\nimport { LiveToggle } from './header/live-toggle';\nimport { MenuToggle } from './header/menu-toggle';\nimport { Nav } from './header/nav';\nimport { Toolbar } from './header/toolbar';\nimport styles from './header.module.scss';\n\ntype Props = {\n isMenuVisible: boolean;\n isLiveVisible: boolean;\n onToggleMenu: () => void;\n onToggleLive: () => void;\n};\n\nexport const Header = ({\n isMenuVisible,\n isLiveVisible,\n onToggleMenu,\n onToggleLive,\n}: Props) => {\n const translate = useTranslate();\n const [menuTransitionState, toggleMenuTransition] = useTransition({\n timeout: 300,\n preEnter: true,\n });\n const [liveTransitionState, toggleLiveTransition] = useTransition({\n timeout: 300,\n preEnter: true,\n });\n const overlayRef = useRef(null);\n\n const liveStatus = useLiveStatus();\n const accessibility = useAccessibility();\n\n const wrapperClassName = useClassName([\n styles.wrapper,\n styles[menuTransitionState],\n styles[liveTransitionState],\n ]);\n const overlayClassName = useClassName([\n styles.overlay,\n isLiveVisible || isMenuVisible ? styles.visible : ``,\n ]);\n\n const { triggerProps: menuTriggerProps, controlProps: menuControlProps } =\n useDisclosure({\n controlExpandedClassName: useClassName([\n styles.menuOverlay,\n styles[menuTransitionState],\n ]),\n controlClassName: useClassName([\n styles.menuOverlay,\n styles[menuTransitionState],\n ]),\n isExpanded: isMenuVisible,\n triggerId: `menu-toggle`,\n onToggle: onToggleMenu,\n label: isMenuVisible\n ? translate(accessibility?.data.menuToggleClose)\n : translate(accessibility?.data.menuToggleOpen),\n type: `menu`,\n });\n\n const { triggerProps: liveTriggerProps, controlProps: liveControlProps } =\n useDisclosure({\n controlExpandedClassName: useClassName([\n styles.liveOverlay,\n styles[liveTransitionState],\n ]),\n controlClassName: useClassName([\n styles.liveOverlay,\n styles[liveTransitionState],\n ]),\n triggerId: `live-toggle`,\n isExpanded: isLiveVisible,\n onToggle: onToggleLive,\n label: translate(liveStatus?.data.description),\n type: `dialog`,\n });\n\n const overlayClickHandler = (event: MouseEvent) => {\n if (event.target !== overlayRef.current) {\n return;\n }\n\n if (isMenuVisible) {\n onToggleMenu();\n } else if (isLiveVisible) {\n onToggleLive();\n }\n };\n\n useEffect(() => {\n toggleLiveTransition(isLiveVisible);\n }, [toggleLiveTransition, isLiveVisible]);\n\n useEffect(() => {\n toggleMenuTransition(isMenuVisible);\n }, [toggleMenuTransition, isMenuVisible]);\n\n useScrollLock({ isLocked: isMenuVisible || isLiveVisible });\n\n return (\n
\n
\n \n }\n liveToggle={\n \n }\n />\n
\n \n
\n \n
\n
\n \n
\n
\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"layout-module--wrapper--6d124\",\"notification\":\"layout-module--notification--be213\",\"main\":\"layout-module--main--e4575\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"notification-module--wrapper--e008f\",\"hide\":\"notification-module--hide--11d18\",\"positive\":\"notification-module--positive--45cdc\",\"negative\":\"notification-module--negative--4cb2b\",\"content\":\"notification-module--content--c5e67\",\"symbol\":\"notification-module--symbol--29a3d\",\"icon\":\"notification-module--icon--69753\",\"close\":\"notification-module--close--078d0\"};","import { useEffect, useMemo, useState } from 'react';\nimport type { ReactNode } from 'react';\n\nimport {\n useAccessibility,\n useButton,\n useClassName,\n useNotification,\n useTranslate,\n} from '../hooks';\nimport { InfoIcon, CloseIcon, WarningIcon } from '../icons';\nimport { hashCode, isString } from '../utils';\n\nimport styles from './notification.module.scss';\n\nconst STORAGE_KEY = `___PK_ALERT_READ___`;\n\nconst getIsVisible = (value: unknown) => {\n if (!isString(value)) {\n return false;\n }\n\n const visibleUntil = new Date(value);\n if (!(visibleUntil instanceof Date)) {\n return false;\n }\n\n if (isNaN(visibleUntil.getTime())) {\n return false;\n }\n\n return visibleUntil.getTime() > new Date().getTime();\n};\n\nconst getIconFromType = (\n type?: Queries.Squidex_NotificationDataTypeEnum | null,\n): ReactNode => {\n switch (type) {\n case `negative`:\n return ;\n case `positive`:\n return ;\n default:\n return undefined;\n }\n};\n\ntype Props = {\n className?: string;\n};\n\nexport const Notification = ({ className }: Props) => {\n const translate = useTranslate();\n const notification = useNotification();\n const [isChecked, setIsChecked] = useState(false);\n const [isVisible, setIsVisible] = useState(() =>\n getIsVisible(notification?.flatData.visibleUntil),\n );\n\n const wrapperClassName = useClassName([\n styles.wrapper,\n !isChecked ? styles.hide : undefined,\n notification?.flatData.type\n ? styles[notification?.flatData.type]\n : undefined,\n className,\n ]);\n const accessibility = useAccessibility();\n const button = useButton({\n label: translate(accessibility?.data.hideMessage),\n });\n\n const message = translate(notification?.data.text);\n const visibleUntil = notification?.flatData.visibleUntil;\n const hashedValue = useMemo(() => `${hashCode(message)}`, [message]);\n\n const closeHandler = () => {\n localStorage.setItem(STORAGE_KEY, hashedValue);\n setIsVisible(false);\n };\n\n useEffect(() => {\n setIsVisible(() => {\n // a) hide message if passed `visibleUntil` end date from backend\n const isVisible = getIsVisible(visibleUntil);\n if (!isVisible) {\n return false;\n }\n\n // b) if visible, check if THIS message was hidden already by user\n const storedValue = localStorage.getItem(STORAGE_KEY);\n return storedValue !== hashedValue;\n });\n\n setIsChecked(true);\n }, [visibleUntil, hashedValue]);\n\n return isVisible ? (\n
\n
\n
\n {getIconFromType(notification?.flatData.type)}\n
\n {message}\n
\n \n
\n ) : null;\n};\n","import { Script } from 'gatsby';\nimport { Fragment, useEffect } from 'react';\n\nimport { useLocale } from '../hooks';\nimport { isFunction, isObject } from '../utils';\n\ntype Props = {\n pathname: string;\n};\n\ntype COOKIEBOT_API = {\n runScripts: () => void;\n setLanguage: (language: string) => void;\n};\n\ntype PUSHPANDA_API = {\n setLanguage: (language: string) => void;\n};\n\nconst Cookiebot: COOKIEBOT_API = {\n runScripts: () => {\n if (\n `Cookiebot` in window &&\n isObject(window.Cookiebot) &&\n `runScripts` in window.Cookiebot &&\n isFunction(window.Cookiebot.runScripts)\n ) {\n window.Cookiebot.runScripts();\n }\n },\n setLanguage: (language) => {\n const element = document.getElementById(`Cookiebot`);\n if (!element) {\n return;\n }\n\n element.dataset.culture = language;\n },\n};\n\nconst PushPanda: PUSHPANDA_API = {\n setLanguage: (language: string) => {\n // @todo\n },\n};\n\nexport const Scripts = ({ pathname }: Props) => {\n const { locale } = useLocale();\n\n useEffect(() => {\n Cookiebot.runScripts();\n }, [pathname]);\n\n useEffect(() => {\n Cookiebot.setLanguage(locale);\n PushPanda.setLanguage(locale);\n }, [locale]);\n\n return process.env.GATSBY_ENV === `production` ? (\n \n \n \n \n \n ) : null;\n};\n","import type { PageProps } from 'gatsby';\nimport { useEffect, useState } from 'react';\nimport type { ReactElement } from 'react';\n\nimport type { PageContext, PageData } from '../config';\nimport { useClassName, useKeyPress, useLocale } from '../hooks';\n\nimport { Footer } from './footer';\nimport { Header } from './header';\nimport styles from './layout.module.scss';\nimport { Notification } from './notification';\nimport { Scripts } from './scripts';\n\ntype Props = Omit, 'children'> & {\n children: ReactElement;\n};\n\nexport const Layout = ({\n location,\n pageContext: { locale },\n children,\n}: Props) => {\n const [isMenuVisible, setIsMenuVisible] = useState(false);\n const [isLiveVisible, setIsLiveVisible] = useState(false);\n const isEscapePressed = useKeyPress(`Escape`);\n const { setLocale } = useLocale();\n\n const mainClassName = useClassName([\n styles.main,\n isMenuVisible || isLiveVisible ? styles.overlay : ``,\n ]);\n const showNotification = !isMenuVisible && !isLiveVisible;\n\n const toggleMenuHandler = () => {\n setIsMenuVisible((isMenuVisible) => !isMenuVisible);\n };\n\n const toggleLiveHandler = () => {\n setIsLiveVisible((isLiveVisible) => !isLiveVisible);\n };\n\n useEffect(() => {\n if (isLiveVisible) {\n setIsMenuVisible(false);\n }\n }, [isLiveVisible]);\n\n useEffect(() => {\n if (isMenuVisible) {\n setIsLiveVisible(false);\n }\n }, [isMenuVisible]);\n\n useEffect(() => {\n if (isEscapePressed) {\n setIsLiveVisible(false);\n setIsMenuVisible(false);\n }\n }, [isEscapePressed]);\n\n useEffect(() => {\n setIsMenuVisible(false);\n setIsLiveVisible(false);\n }, [location.href]);\n\n useEffect(() => {\n setLocale(locale);\n }, [setLocale, locale]);\n\n return (\n
\n {showNotification && }\n \n
{children}
\n
\n \n
\n );\n};\n","import type { GatsbyBrowser } from 'gatsby';\n\nimport type { PageContext, PageData } from './src/config';\nimport { wrapPageElement as commonWrapPageElement } from './wrap-page-element';\n\nimport './src/styles/main.scss';\n\nexport const wrapPageElement: GatsbyBrowser<\n PageData,\n PageContext\n>['wrapPageElement'] = commonWrapPageElement;\n","import type { GatsbyBrowser, GatsbySSR } from 'gatsby';\n\nimport type { PageContext, PageData } from './src/config';\nimport { LocaleProvider } from './src/contexts';\nimport { Layout } from './src/theme';\n\ntype WrapPageElement =\n | GatsbyBrowser['wrapPageElement']\n | GatsbySSR['wrapPageElement'];\n\nexport const wrapPageElement: WrapPageElement = ({ props, element }) => (\n \n {typeof element.type === `function` && `SKIP_LAYOUT` in element.type ? (\n element\n ) : (\n {element}\n )}\n \n);\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"arolla-pine-trail-module--wrapper--09a90\",\"image\":\"arolla-pine-trail-module--image--513cd\",\"content\":\"arolla-pine-trail-module--content--a1f35\"};","import { graphql } from 'gatsby';\nimport { Fragment } from 'react';\n\nimport { Carousel, Markdown, InlineSVG, Title, Trans } from '../components';\nimport { useAccessibility, useTranslate, useTranslateArray } from '../hooks';\n\nimport styles from './arolla-pine-trail.module.scss';\n\ntype Props = {\n arollaPineTrails: Queries.Maybe;\n};\n\nexport const ArollaPineTrail = ({ arollaPineTrails }: Props) => {\n const translate = useTranslate();\n const translateArray = useTranslateArray();\n const accessibility = useAccessibility();\n\n return (\n \n \n {(arollaPineTrails || []).map((arollaPineTrail, index) => (\n \n
\n \n \n <Trans data={arollaPineTrail.data.title} />\n \n
\n {translateArray(arollaPineTrail.data.facts).map(\n (fact, index) => (\n \n
{fact.label}
\n
{fact.value}
\n
\n ),\n )}\n
\n \n
\n \n ))}\n
\n \n \n \n {(index) => (\n \n )}\n \n \n \n
\n );\n};\n\nexport const query = graphql`\n fragment ArollaPineTrail on Squidex {\n queryArollaPineTrailContents(orderby: \"data/rank/iv\") {\n data {\n title {\n de\n en\n }\n\n facts {\n de {\n label\n value\n }\n en {\n label\n value\n }\n }\n content {\n de\n en\n }\n }\n\n flatData {\n map {\n localFile {\n svg {\n content: originalContent\n }\n }\n ...SquidexAssetLocalFileProps\n }\n }\n }\n }\n`;\n","// extracted by mini-css-extract-plugin\nexport default {\"fields\":\"contact-form-module--fields--a4ef5\",\"field\":\"contact-form-module--field--507ed\",\"remark\":\"contact-form-module--remark--ef946\",\"dialog\":\"contact-form-module--dialog--0eea6\",\"button\":\"contact-form-module--button--7af5e\"};","import {\n ChangeEvent,\n InvalidEvent,\n Fragment,\n useState,\n useEffect,\n useRef,\n} from 'react';\n\nimport { Button, Field, SROnly, Trans, Text } from '../components';\nimport type { FieldProps } from '../components';\nimport { useAccessibility, useTranslate, useTranslateArray } from '../hooks';\nimport { stringify } from '../utils';\n\nimport styles from './contact-form.module.scss';\n\nconst API_URL = `${process.env.GATSBY_BACKEND_API_URL}/send-message`;\n\nconst TRANSMISSION_STATUS = {\n IDLE: `idle`,\n SENDING: `sending`,\n SUCCESS: `success`,\n FAILURE: `failure`,\n} as const;\ntype TransmissionStatus =\n (typeof TRANSMISSION_STATUS)[keyof typeof TRANSMISSION_STATUS];\n\nfunction fieldFactory>(\n type: Queries.Maybe,\n props: T,\n) {\n switch (type) {\n case `checkbox`:\n return ;\n case `date`:\n return ;\n case `email`:\n return ;\n case `number`:\n return ;\n case `select`:\n return ;\n case `text`:\n return ;\n case `textarea`:\n return ;\n default:\n return null;\n }\n}\n\ntype Props = {\n pageContact: Queries.Squidex_PageContact | undefined;\n};\n\nexport const ContactForm = ({ pageContact }: Props) => {\n const dialogRef = useRef(null);\n const [transmissionStatus, setTransmissionStatus] =\n useState(TRANSMISSION_STATUS.IDLE);\n const [formState, setFormState] = useState>({});\n const accessibility = useAccessibility();\n const translateArray = useTranslateArray();\n const translate = useTranslate();\n\n const errorMessage = translate(accessibility?.data.validationMessage);\n\n const makeInputProps = (name: string) => ({\n name,\n required: true,\n value: stringify(formState[name]),\n onInvalid: ({ target }: InvalidEvent) => {\n // set when send without interactoin\n target.setCustomValidity(errorMessage);\n },\n onInput: ({ target }: ChangeEvent) => {\n // 1) reset potential custom error\n target.setCustomValidity(``);\n\n // 2) if still error, override again\n if (!target.validity.valid) {\n target.setCustomValidity(errorMessage);\n }\n },\n onChange: (value: string) =>\n setFormState((formState) => ({ ...formState, [name]: value })),\n });\n\n const sendMessage = async () => {\n const response = await fetch(API_URL, {\n method: `POST`,\n body: JSON.stringify(formState),\n headers: {\n 'Content-Type': `application/json`,\n },\n });\n\n if (!response.ok) {\n throw new Error(`Failed with response: ${await response.text()}`);\n }\n\n setFormState({});\n };\n\n useEffect(() => {\n switch (transmissionStatus) {\n case TRANSMISSION_STATUS.IDLE:\n dialogRef.current?.close();\n break;\n default:\n dialogRef.current?.showModal();\n }\n\n return () => dialogRef.current?.close();\n }, [transmissionStatus]);\n\n return (\n \n {\n event.preventDefault();\n if (formState.remark) {\n return;\n }\n\n try {\n setTransmissionStatus(TRANSMISSION_STATUS.SENDING);\n await sendMessage();\n setTransmissionStatus(TRANSMISSION_STATUS.SUCCESS);\n } catch (e) {\n setTransmissionStatus(TRANSMISSION_STATUS.FAILURE);\n console.error(e);\n }\n }}\n >\n
\n {translateArray(pageContact?.data.form).map(({ type, name, label }) =>\n name ? (\n \n {fieldFactory(type, {\n label,\n className: styles.field,\n inputProps: makeInputProps(name),\n })}\n \n ) : null,\n )}\n
\n \n \n \n \n \n \n \n \n
\n {transmissionStatus === TRANSMISSION_STATUS.SENDING ? (\n \n ) : (\n
\n \n \n \n\n \n \n \n \n )}\n
\n
\n
\n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"contact-module--wrapper--26b6d\",\"content\":\"contact-module--content--d3b2f\",\"form\":\"contact-module--form--69a58\",\"link\":\"contact-module--link--30369\",\"contact\":\"contact-module--contact--ff22b\"};","import { graphql } from 'gatsby';\n\nimport { Anchor, Markdown, PreWrap, Title, Trans } from '../components';\nimport { useTranslate, useTranslateObject } from '../hooks';\nimport { isValidPhone, toPhoneUri } from '../utils';\n\nimport { ContactForm } from './contact-form';\nimport styles from './contact.module.scss';\n\ntype Props = {\n pageContact: Queries.Squidex_PageContact | undefined;\n contact: Queries.Squidex_Contact | undefined;\n openingHours: Queries.Maybe;\n};\n\nexport const Contact = ({ pageContact, openingHours, contact }: Props) => {\n const translate = useTranslate();\n const translateObject = useTranslateObject();\n\n const phone = translateObject(contact?.data.phone);\n\n return (\n
\n
\n \n \n <Trans data={openingHours?.[0]?.data.title} />\n \n \n \n \n\n
\n \n \n \n
\n\n \n <Trans data={pageContact?.data.labelPhone} />\n \n {phone?.value && isValidPhone(phone?.value) ? (\n
\n {phone.label}\n \n {phone.value}\n \n
\n ) : null}\n
\n\n
\n \n <Trans data={pageContact?.data.labelForm} />\n \n \n
\n
\n );\n};\n\nexport const query = graphql`\n fragment PageContact on Squidex {\n queryPageContactContents {\n data {\n title {\n de\n en\n }\n content {\n de\n en\n }\n labelPhone {\n de\n en\n }\n labelForm {\n de\n en\n }\n form {\n de {\n name\n label\n type\n }\n en {\n name\n label\n type\n }\n }\n submit {\n de\n en\n }\n messageLoading {\n de\n en\n }\n messageSuccess {\n de\n en\n }\n messageFailure {\n de\n en\n }\n }\n flatData {\n backgroundImage {\n localFile {\n childImageSharp {\n gatsbyImageData(\n width: 2560\n height: 1024\n layout: CONSTRAINED\n transformOptions: { cropFocus: ENTROPY }\n )\n }\n }\n ...SquidexAssetLocalFileProps\n }\n }\n }\n }\n\n fragment ContactOpeningHours on Squidex {\n queryOpeningHoursContents(filter: \"data/view/iv eq 'homepage'\") {\n data {\n title {\n de\n en\n }\n content {\n de\n en\n }\n }\n }\n }\n\n fragment ContactAddress on Squidex {\n queryContactContents {\n data {\n address {\n de\n en\n }\n phone {\n de {\n ...KeyValue\n }\n en {\n ...KeyValue\n }\n }\n }\n }\n }\n`;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"directions-option-module--wrapper--d65f8\",\"active\":\"directions-option-module--active--167e4\",\"icon\":\"directions-option-module--icon--34aaa\"};","import { useId } from 'react';\n\nimport { InlineSVG, SROnly } from '../components';\nimport { useClassName } from '../hooks';\n\nimport styles from './directions-option.module.scss';\n\ntype Props = {\n isChecked: boolean;\n option: Queries.Squidex_DirectionsDataOptionsChildDto;\n onToggle: (\n option: Queries.Squidex_DirectionsDataOptionsChildDto,\n isPressed: boolean,\n ) => void;\n};\n\nexport const DirectionsOption = ({ option, isChecked, onToggle }: Props) => {\n const id = useId();\n\n const wrapperClassName = useClassName([\n styles.wrapper,\n isChecked ? styles.active : ``,\n ]);\n\n return (\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"directions-module--wrapper--4d6ed\",\"map\":\"directions-module--map--7b323\",\"form\":\"directions-module--form--34671\",\"content\":\"directions-module--content--abda8\",\"origin\":\"directions-module--origin--232fe\",\"options\":\"directions-module--options--af91e\",\"remark\":\"directions-module--remark--f96d1\",\"button\":\"directions-module--button--8192e\"};","import { graphql } from 'gatsby';\nimport { useState } from 'react';\n\nimport {\n Button,\n Container,\n Field,\n InlineSVG,\n Markdown,\n SROnly,\n Title,\n Trans,\n} from '../components';\nimport {\n useLocale,\n useTranslate,\n useTranslateArray,\n useTranslateObject,\n} from '../hooks';\nimport { stringify } from '../utils';\n\nimport { DirectionsOption } from './directions-option';\nimport styles from './directions.module.scss';\n\ntype Props = {\n directions: Queries.Squidex_Directions | undefined;\n};\n\nconst GOOGLE_MAPS_URL = `https://www.google.com/maps/dir/`;\n\nexport const Directions = ({ directions }: Props) => {\n const { locale } = useLocale();\n const translate = useTranslate();\n const translateArray = useTranslateArray();\n const translateObject = useTranslateObject();\n\n const [origin, setOrigin] = useState(``);\n const [remark, setRemark] = useState(``);\n const [travelmode, setTravelmode] = useState(() =>\n stringify(translateArray(directions?.data?.options)?.[0]?.travelmode),\n );\n\n return (\n
\n \n {\n if (remark) {\n event.preventDefault();\n }\n }}\n >\n \n \n <Trans data={directions?.data?.title} />\n \n \n \n \n \n \n
\n \n \n \n {translateArray(directions?.data.options).map((option) => (\n \n setTravelmode(stringify(option.travelmode))\n }\n />\n ))}\n
\n \n \n \n \n
\n \n
\n );\n};\n\nexport const query = graphql`\n fragment Directions on Squidex {\n queryDirectionsContents {\n data {\n title {\n de\n en\n }\n content {\n de\n en\n }\n origin {\n de\n en\n }\n travelmode {\n de\n en\n }\n options {\n de {\n ...DirectionsOptions\n }\n en {\n ...DirectionsOptions\n }\n }\n button {\n de\n en\n }\n map {\n de {\n ...DirectionsMap\n }\n en {\n ...DirectionsMap\n }\n }\n }\n flatData {\n destination\n }\n }\n }\n\n fragment DirectionsOptions on Squidex_DirectionsDataOptionsChildDto {\n name\n travelmode\n icon {\n localFile {\n svg {\n content\n }\n }\n ...SquidexAssetLocalFileProps\n }\n }\n\n fragment DirectionsMap on Squidex_Asset {\n localFile {\n svg {\n content: originalContent\n }\n }\n ...SquidexAssetLocalFileProps\n }\n`;\n","// =============================================================================\n// Weekday\n// =============================================================================\nexport var ALL_WEEKDAYS = [\n 'MO',\n 'TU',\n 'WE',\n 'TH',\n 'FR',\n 'SA',\n 'SU',\n];\nvar Weekday = /** @class */ (function () {\n function Weekday(weekday, n) {\n if (n === 0)\n throw new Error(\"Can't create weekday with n == 0\");\n this.weekday = weekday;\n this.n = n;\n }\n Weekday.fromStr = function (str) {\n return new Weekday(ALL_WEEKDAYS.indexOf(str));\n };\n // __call__ - Cannot call the object directly, do it through\n // e.g. RRule.TH.nth(-1) instead,\n Weekday.prototype.nth = function (n) {\n return this.n === n ? this : new Weekday(this.weekday, n);\n };\n // __eq__\n Weekday.prototype.equals = function (other) {\n return this.weekday === other.weekday && this.n === other.n;\n };\n // __repr__\n Weekday.prototype.toString = function () {\n var s = ALL_WEEKDAYS[this.weekday];\n if (this.n)\n s = (this.n > 0 ? '+' : '') + String(this.n) + s;\n return s;\n };\n Weekday.prototype.getJsWeekday = function () {\n return this.weekday === 6 ? 0 : this.weekday + 1;\n };\n return Weekday;\n}());\nexport { Weekday };\n//# sourceMappingURL=weekday.js.map","// =============================================================================\n// Helper functions\n// =============================================================================\nimport { ALL_WEEKDAYS } from './weekday';\nexport var isPresent = function (value) {\n return value !== null && value !== undefined;\n};\nexport var isNumber = function (value) {\n return typeof value === 'number';\n};\nexport var isWeekdayStr = function (value) {\n return typeof value === 'string' && ALL_WEEKDAYS.includes(value);\n};\nexport var isArray = Array.isArray;\n/**\n * Simplified version of python's range()\n */\nexport var range = function (start, end) {\n if (end === void 0) { end = start; }\n if (arguments.length === 1) {\n end = start;\n start = 0;\n }\n var rang = [];\n for (var i = start; i < end; i++)\n rang.push(i);\n return rang;\n};\nexport var clone = function (array) {\n return [].concat(array);\n};\nexport var repeat = function (value, times) {\n var i = 0;\n var array = [];\n if (isArray(value)) {\n for (; i < times; i++)\n array[i] = [].concat(value);\n }\n else {\n for (; i < times; i++)\n array[i] = value;\n }\n return array;\n};\nexport var toArray = function (item) {\n if (isArray(item)) {\n return item;\n }\n return [item];\n};\nexport function padStart(item, targetLength, padString) {\n if (padString === void 0) { padString = ' '; }\n var str = String(item);\n targetLength = targetLength >> 0;\n if (str.length > targetLength) {\n return String(str);\n }\n targetLength = targetLength - str.length;\n if (targetLength > padString.length) {\n padString += repeat(padString, targetLength / padString.length);\n }\n return padString.slice(0, targetLength) + String(str);\n}\n/**\n * Python like split\n */\nexport var split = function (str, sep, num) {\n var splits = str.split(sep);\n return num\n ? splits.slice(0, num).concat([splits.slice(num).join(sep)])\n : splits;\n};\n/**\n * closure/goog/math/math.js:modulo\n * Copyright 2006 The Closure Library Authors.\n * The % operator in JavaScript returns the remainder of a / b, but differs from\n * some other languages in that the result will have the same sign as the\n * dividend. For example, -1 % 8 == -1, whereas in some other languages\n * (such as Python) the result would be 7. This function emulates the more\n * correct modulo behavior, which is useful for certain applications such as\n * calculating an offset index in a circular list.\n *\n * @param {number} a The dividend.\n * @param {number} b The divisor.\n * @return {number} a % b where the result is between 0 and b (either 0 <= x < b\n * or b < x <= 0, depending on the sign of b).\n */\nexport var pymod = function (a, b) {\n var r = a % b;\n // If r and b differ in sign, add b to wrap the result to the correct sign.\n return r * b < 0 ? r + b : r;\n};\n/**\n * @see: \n */\nexport var divmod = function (a, b) {\n return { div: Math.floor(a / b), mod: pymod(a, b) };\n};\nexport var empty = function (obj) {\n return !isPresent(obj) || obj.length === 0;\n};\n/**\n * Python-like boolean\n *\n * @return {Boolean} value of an object/primitive, taking into account\n * the fact that in Python an empty list's/tuple's\n * boolean value is False, whereas in JS it's true\n */\nexport var notEmpty = function (obj) {\n return !empty(obj);\n};\n/**\n * Return true if a value is in an array\n */\nexport var includes = function (arr, val) {\n return notEmpty(arr) && arr.indexOf(val) !== -1;\n};\n//# sourceMappingURL=helpers.js.map","import { padStart } from './helpers';\nexport var datetime = function (y, m, d, h, i, s) {\n if (h === void 0) { h = 0; }\n if (i === void 0) { i = 0; }\n if (s === void 0) { s = 0; }\n return new Date(Date.UTC(y, m - 1, d, h, i, s));\n};\n/**\n * General date-related utilities.\n * Also handles several incompatibilities between JavaScript and Python\n *\n */\nexport var MONTH_DAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n/**\n * Number of milliseconds of one day\n */\nexport var ONE_DAY = 1000 * 60 * 60 * 24;\n/**\n * @see: \n */\nexport var MAXYEAR = 9999;\n/**\n * Python uses 1-Jan-1 as the base for calculating ordinals but we don't\n * want to confuse the JS engine with milliseconds > Number.MAX_NUMBER,\n * therefore we use 1-Jan-1970 instead\n */\nexport var ORDINAL_BASE = datetime(1970, 1, 1);\n/**\n * Python: MO-SU: 0 - 6\n * JS: SU-SAT 0 - 6\n */\nexport var PY_WEEKDAYS = [6, 0, 1, 2, 3, 4, 5];\n/**\n * py_date.timetuple()[7]\n */\nexport var getYearDay = function (date) {\n var dateNoTime = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n return (Math.ceil((dateNoTime.valueOf() - new Date(date.getUTCFullYear(), 0, 1).valueOf()) /\n ONE_DAY) + 1);\n};\nexport var isLeapYear = function (year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n};\nexport var isDate = function (value) {\n return value instanceof Date;\n};\nexport var isValidDate = function (value) {\n return isDate(value) && !isNaN(value.getTime());\n};\n/**\n * @return {Number} the date's timezone offset in ms\n */\nexport var tzOffset = function (date) {\n return date.getTimezoneOffset() * 60 * 1000;\n};\n/**\n * @see: \n */\nexport var daysBetween = function (date1, date2) {\n // The number of milliseconds in one day\n // Convert both dates to milliseconds\n var date1ms = date1.getTime();\n var date2ms = date2.getTime();\n // Calculate the difference in milliseconds\n var differencems = date1ms - date2ms;\n // Convert back to days and return\n return Math.round(differencems / ONE_DAY);\n};\n/**\n * @see: \n */\nexport var toOrdinal = function (date) {\n return daysBetween(date, ORDINAL_BASE);\n};\n/**\n * @see - \n */\nexport var fromOrdinal = function (ordinal) {\n return new Date(ORDINAL_BASE.getTime() + ordinal * ONE_DAY);\n};\nexport var getMonthDays = function (date) {\n var month = date.getUTCMonth();\n return month === 1 && isLeapYear(date.getUTCFullYear())\n ? 29\n : MONTH_DAYS[month];\n};\n/**\n * @return {Number} python-like weekday\n */\nexport var getWeekday = function (date) {\n return PY_WEEKDAYS[date.getUTCDay()];\n};\n/**\n * @see: \n */\nexport var monthRange = function (year, month) {\n var date = datetime(year, month + 1, 1);\n return [getWeekday(date), getMonthDays(date)];\n};\n/**\n * @see: \n */\nexport var combine = function (date, time) {\n time = time || date;\n return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds()));\n};\nexport var clone = function (date) {\n var dolly = new Date(date.getTime());\n return dolly;\n};\nexport var cloneDates = function (dates) {\n var clones = [];\n for (var i = 0; i < dates.length; i++) {\n clones.push(clone(dates[i]));\n }\n return clones;\n};\n/**\n * Sorts an array of Date or Time objects\n */\nexport var sort = function (dates) {\n dates.sort(function (a, b) {\n return a.getTime() - b.getTime();\n });\n};\nexport var timeToUntilString = function (time, utc) {\n if (utc === void 0) { utc = true; }\n var date = new Date(time);\n return [\n padStart(date.getUTCFullYear().toString(), 4, '0'),\n padStart(date.getUTCMonth() + 1, 2, '0'),\n padStart(date.getUTCDate(), 2, '0'),\n 'T',\n padStart(date.getUTCHours(), 2, '0'),\n padStart(date.getUTCMinutes(), 2, '0'),\n padStart(date.getUTCSeconds(), 2, '0'),\n utc ? 'Z' : '',\n ].join('');\n};\nexport var untilStringToDate = function (until) {\n var re = /^(\\d{4})(\\d{2})(\\d{2})(T(\\d{2})(\\d{2})(\\d{2})Z?)?$/;\n var bits = re.exec(until);\n if (!bits)\n throw new Error(\"Invalid UNTIL value: \".concat(until));\n return new Date(Date.UTC(parseInt(bits[1], 10), parseInt(bits[2], 10) - 1, parseInt(bits[3], 10), parseInt(bits[5], 10) || 0, parseInt(bits[6], 10) || 0, parseInt(bits[7], 10) || 0));\n};\nvar dateTZtoISO8601 = function (date, timeZone) {\n // date format for sv-SE is almost ISO8601\n var dateStr = date.toLocaleString('sv-SE', { timeZone: timeZone });\n // '2023-02-07 10:41:36'\n return dateStr.replace(' ', 'T') + 'Z';\n};\nexport var dateInTimeZone = function (date, timeZone) {\n var localTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n // Date constructor can only reliably parse dates in ISO8601 format\n var dateInLocalTZ = new Date(dateTZtoISO8601(date, localTimeZone));\n var dateInTargetTZ = new Date(dateTZtoISO8601(date, timeZone !== null && timeZone !== void 0 ? timeZone : 'UTC'));\n var tzOffset = dateInTargetTZ.getTime() - dateInLocalTZ.getTime();\n return new Date(date.getTime() - tzOffset);\n};\n//# sourceMappingURL=dateutil.js.map","/**\n * This class helps us to emulate python's generators, sorta.\n */\nvar IterResult = /** @class */ (function () {\n function IterResult(method, args) {\n this.minDate = null;\n this.maxDate = null;\n this._result = [];\n this.total = 0;\n this.method = method;\n this.args = args;\n if (method === 'between') {\n this.maxDate = args.inc\n ? args.before\n : new Date(args.before.getTime() - 1);\n this.minDate = args.inc ? args.after : new Date(args.after.getTime() + 1);\n }\n else if (method === 'before') {\n this.maxDate = args.inc ? args.dt : new Date(args.dt.getTime() - 1);\n }\n else if (method === 'after') {\n this.minDate = args.inc ? args.dt : new Date(args.dt.getTime() + 1);\n }\n }\n /**\n * Possibly adds a date into the result.\n *\n * @param {Date} date - the date isn't necessarly added to the result\n * list (if it is too late/too early)\n * @return {Boolean} true if it makes sense to continue the iteration\n * false if we're done.\n */\n IterResult.prototype.accept = function (date) {\n ++this.total;\n var tooEarly = this.minDate && date < this.minDate;\n var tooLate = this.maxDate && date > this.maxDate;\n if (this.method === 'between') {\n if (tooEarly)\n return true;\n if (tooLate)\n return false;\n }\n else if (this.method === 'before') {\n if (tooLate)\n return false;\n }\n else if (this.method === 'after') {\n if (tooEarly)\n return true;\n this.add(date);\n return false;\n }\n return this.add(date);\n };\n /**\n *\n * @param {Date} date that is part of the result.\n * @return {Boolean} whether we are interested in more values.\n */\n IterResult.prototype.add = function (date) {\n this._result.push(date);\n return true;\n };\n /**\n * 'before' and 'after' return only one date, whereas 'all'\n * and 'between' an array.\n *\n * @return {Date,Array?}\n */\n IterResult.prototype.getValue = function () {\n var res = this._result;\n switch (this.method) {\n case 'all':\n case 'between':\n return res;\n case 'before':\n case 'after':\n default:\n return (res.length ? res[res.length - 1] : null);\n }\n };\n IterResult.prototype.clone = function () {\n return new IterResult(this.method, this.args);\n };\n return IterResult;\n}());\nexport default IterResult;\n//# sourceMappingURL=iterresult.js.map","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { __extends } from \"tslib\";\nimport IterResult from './iterresult';\n/**\n * IterResult subclass that calls a callback function on each add,\n * and stops iterating when the callback returns false.\n */\nvar CallbackIterResult = /** @class */ (function (_super) {\n __extends(CallbackIterResult, _super);\n function CallbackIterResult(method, args, iterator) {\n var _this = _super.call(this, method, args) || this;\n _this.iterator = iterator;\n return _this;\n }\n CallbackIterResult.prototype.add = function (date) {\n if (this.iterator(date, this._result.length)) {\n this._result.push(date);\n return true;\n }\n return false;\n };\n return CallbackIterResult;\n}(IterResult));\nexport default CallbackIterResult;\n//# sourceMappingURL=callbackiterresult.js.map","export var Frequency;\n(function (Frequency) {\n Frequency[Frequency[\"YEARLY\"] = 0] = \"YEARLY\";\n Frequency[Frequency[\"MONTHLY\"] = 1] = \"MONTHLY\";\n Frequency[Frequency[\"WEEKLY\"] = 2] = \"WEEKLY\";\n Frequency[Frequency[\"DAILY\"] = 3] = \"DAILY\";\n Frequency[Frequency[\"HOURLY\"] = 4] = \"HOURLY\";\n Frequency[Frequency[\"MINUTELY\"] = 5] = \"MINUTELY\";\n Frequency[Frequency[\"SECONDLY\"] = 6] = \"SECONDLY\";\n})(Frequency || (Frequency = {}));\nexport function freqIsDailyOrGreater(freq) {\n return freq < Frequency.HOURLY;\n}\n//# sourceMappingURL=types.js.map","// =============================================================================\n// i18n\n// =============================================================================\nvar ENGLISH = {\n dayNames: [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n ],\n monthNames: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n tokens: {\n SKIP: /^[ \\r\\n\\t]+|^\\.$/,\n number: /^[1-9][0-9]*/,\n numberAsText: /^(one|two|three)/i,\n every: /^every/i,\n 'day(s)': /^days?/i,\n 'weekday(s)': /^weekdays?/i,\n 'week(s)': /^weeks?/i,\n 'hour(s)': /^hours?/i,\n 'minute(s)': /^minutes?/i,\n 'month(s)': /^months?/i,\n 'year(s)': /^years?/i,\n on: /^(on|in)/i,\n at: /^(at)/i,\n the: /^the/i,\n first: /^first/i,\n second: /^second/i,\n third: /^third/i,\n nth: /^([1-9][0-9]*)(\\.|th|nd|rd|st)/i,\n last: /^last/i,\n for: /^for/i,\n 'time(s)': /^times?/i,\n until: /^(un)?til/i,\n monday: /^mo(n(day)?)?/i,\n tuesday: /^tu(e(s(day)?)?)?/i,\n wednesday: /^we(d(n(esday)?)?)?/i,\n thursday: /^th(u(r(sday)?)?)?/i,\n friday: /^fr(i(day)?)?/i,\n saturday: /^sa(t(urday)?)?/i,\n sunday: /^su(n(day)?)?/i,\n january: /^jan(uary)?/i,\n february: /^feb(ruary)?/i,\n march: /^mar(ch)?/i,\n april: /^apr(il)?/i,\n may: /^may/i,\n june: /^june?/i,\n july: /^july?/i,\n august: /^aug(ust)?/i,\n september: /^sep(t(ember)?)?/i,\n october: /^oct(ober)?/i,\n november: /^nov(ember)?/i,\n december: /^dec(ember)?/i,\n comma: /^(,\\s*|(and|or)\\s*)+/i,\n },\n};\nexport default ENGLISH;\n//# sourceMappingURL=i18n.js.map","import ENGLISH from './i18n';\nimport { RRule } from '../rrule';\nimport { isArray, isNumber, isPresent } from '../helpers';\n// =============================================================================\n// Helper functions\n// =============================================================================\n/**\n * Return true if a value is in an array\n */\nvar contains = function (arr, val) {\n return arr.indexOf(val) !== -1;\n};\nvar defaultGetText = function (id) { return id.toString(); };\nvar defaultDateFormatter = function (year, month, day) { return \"\".concat(month, \" \").concat(day, \", \").concat(year); };\n/**\n *\n * @param {RRule} rrule\n * Optional:\n * @param {Function} gettext function\n * @param {Object} language definition\n * @constructor\n */\nvar ToText = /** @class */ (function () {\n function ToText(rrule, gettext, language, dateFormatter) {\n if (gettext === void 0) { gettext = defaultGetText; }\n if (language === void 0) { language = ENGLISH; }\n if (dateFormatter === void 0) { dateFormatter = defaultDateFormatter; }\n this.text = [];\n this.language = language || ENGLISH;\n this.gettext = gettext;\n this.dateFormatter = dateFormatter;\n this.rrule = rrule;\n this.options = rrule.options;\n this.origOptions = rrule.origOptions;\n if (this.origOptions.bymonthday) {\n var bymonthday = [].concat(this.options.bymonthday);\n var bynmonthday = [].concat(this.options.bynmonthday);\n bymonthday.sort(function (a, b) { return a - b; });\n bynmonthday.sort(function (a, b) { return b - a; });\n // 1, 2, 3, .., -5, -4, -3, ..\n this.bymonthday = bymonthday.concat(bynmonthday);\n if (!this.bymonthday.length)\n this.bymonthday = null;\n }\n if (isPresent(this.origOptions.byweekday)) {\n var byweekday = !isArray(this.origOptions.byweekday)\n ? [this.origOptions.byweekday]\n : this.origOptions.byweekday;\n var days = String(byweekday);\n this.byweekday = {\n allWeeks: byweekday.filter(function (weekday) {\n return !weekday.n;\n }),\n someWeeks: byweekday.filter(function (weekday) {\n return Boolean(weekday.n);\n }),\n isWeekdays: days.indexOf('MO') !== -1 &&\n days.indexOf('TU') !== -1 &&\n days.indexOf('WE') !== -1 &&\n days.indexOf('TH') !== -1 &&\n days.indexOf('FR') !== -1 &&\n days.indexOf('SA') === -1 &&\n days.indexOf('SU') === -1,\n isEveryDay: days.indexOf('MO') !== -1 &&\n days.indexOf('TU') !== -1 &&\n days.indexOf('WE') !== -1 &&\n days.indexOf('TH') !== -1 &&\n days.indexOf('FR') !== -1 &&\n days.indexOf('SA') !== -1 &&\n days.indexOf('SU') !== -1,\n };\n var sortWeekDays = function (a, b) {\n return a.weekday - b.weekday;\n };\n this.byweekday.allWeeks.sort(sortWeekDays);\n this.byweekday.someWeeks.sort(sortWeekDays);\n if (!this.byweekday.allWeeks.length)\n this.byweekday.allWeeks = null;\n if (!this.byweekday.someWeeks.length)\n this.byweekday.someWeeks = null;\n }\n else {\n this.byweekday = null;\n }\n }\n /**\n * Test whether the rrule can be fully converted to text.\n *\n * @param {RRule} rrule\n * @return {Boolean}\n */\n ToText.isFullyConvertible = function (rrule) {\n var canConvert = true;\n if (!(rrule.options.freq in ToText.IMPLEMENTED))\n return false;\n if (rrule.origOptions.until && rrule.origOptions.count)\n return false;\n for (var key in rrule.origOptions) {\n if (contains(['dtstart', 'tzid', 'wkst', 'freq'], key))\n return true;\n if (!contains(ToText.IMPLEMENTED[rrule.options.freq], key))\n return false;\n }\n return canConvert;\n };\n ToText.prototype.isFullyConvertible = function () {\n return ToText.isFullyConvertible(this.rrule);\n };\n /**\n * Perform the conversion. Only some of the frequencies are supported.\n * If some of the rrule's options aren't supported, they'll\n * be omitted from the output an \"(~ approximate)\" will be appended.\n *\n * @return {*}\n */\n ToText.prototype.toString = function () {\n var gettext = this.gettext;\n if (!(this.options.freq in ToText.IMPLEMENTED)) {\n return gettext('RRule error: Unable to fully convert this rrule to text');\n }\n this.text = [gettext('every')];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this[RRule.FREQUENCIES[this.options.freq]]();\n if (this.options.until) {\n this.add(gettext('until'));\n var until = this.options.until;\n this.add(this.dateFormatter(until.getUTCFullYear(), this.language.monthNames[until.getUTCMonth()], until.getUTCDate()));\n }\n else if (this.options.count) {\n this.add(gettext('for'))\n .add(this.options.count.toString())\n .add(this.plural(this.options.count) ? gettext('times') : gettext('time'));\n }\n if (!this.isFullyConvertible())\n this.add(gettext('(~ approximate)'));\n return this.text.join('');\n };\n ToText.prototype.HOURLY = function () {\n var gettext = this.gettext;\n if (this.options.interval !== 1)\n this.add(this.options.interval.toString());\n this.add(this.plural(this.options.interval) ? gettext('hours') : gettext('hour'));\n };\n ToText.prototype.MINUTELY = function () {\n var gettext = this.gettext;\n if (this.options.interval !== 1)\n this.add(this.options.interval.toString());\n this.add(this.plural(this.options.interval)\n ? gettext('minutes')\n : gettext('minute'));\n };\n ToText.prototype.DAILY = function () {\n var gettext = this.gettext;\n if (this.options.interval !== 1)\n this.add(this.options.interval.toString());\n if (this.byweekday && this.byweekday.isWeekdays) {\n this.add(this.plural(this.options.interval)\n ? gettext('weekdays')\n : gettext('weekday'));\n }\n else {\n this.add(this.plural(this.options.interval) ? gettext('days') : gettext('day'));\n }\n if (this.origOptions.bymonth) {\n this.add(gettext('in'));\n this._bymonth();\n }\n if (this.bymonthday) {\n this._bymonthday();\n }\n else if (this.byweekday) {\n this._byweekday();\n }\n else if (this.origOptions.byhour) {\n this._byhour();\n }\n };\n ToText.prototype.WEEKLY = function () {\n var gettext = this.gettext;\n if (this.options.interval !== 1) {\n this.add(this.options.interval.toString()).add(this.plural(this.options.interval) ? gettext('weeks') : gettext('week'));\n }\n if (this.byweekday && this.byweekday.isWeekdays) {\n if (this.options.interval === 1) {\n this.add(this.plural(this.options.interval)\n ? gettext('weekdays')\n : gettext('weekday'));\n }\n else {\n this.add(gettext('on')).add(gettext('weekdays'));\n }\n }\n else if (this.byweekday && this.byweekday.isEveryDay) {\n this.add(this.plural(this.options.interval) ? gettext('days') : gettext('day'));\n }\n else {\n if (this.options.interval === 1)\n this.add(gettext('week'));\n if (this.origOptions.bymonth) {\n this.add(gettext('in'));\n this._bymonth();\n }\n if (this.bymonthday) {\n this._bymonthday();\n }\n else if (this.byweekday) {\n this._byweekday();\n }\n if (this.origOptions.byhour) {\n this._byhour();\n }\n }\n };\n ToText.prototype.MONTHLY = function () {\n var gettext = this.gettext;\n if (this.origOptions.bymonth) {\n if (this.options.interval !== 1) {\n this.add(this.options.interval.toString()).add(gettext('months'));\n if (this.plural(this.options.interval))\n this.add(gettext('in'));\n }\n else {\n // this.add(gettext('MONTH'))\n }\n this._bymonth();\n }\n else {\n if (this.options.interval !== 1) {\n this.add(this.options.interval.toString());\n }\n this.add(this.plural(this.options.interval)\n ? gettext('months')\n : gettext('month'));\n }\n if (this.bymonthday) {\n this._bymonthday();\n }\n else if (this.byweekday && this.byweekday.isWeekdays) {\n this.add(gettext('on')).add(gettext('weekdays'));\n }\n else if (this.byweekday) {\n this._byweekday();\n }\n };\n ToText.prototype.YEARLY = function () {\n var gettext = this.gettext;\n if (this.origOptions.bymonth) {\n if (this.options.interval !== 1) {\n this.add(this.options.interval.toString());\n this.add(gettext('years'));\n }\n else {\n // this.add(gettext('YEAR'))\n }\n this._bymonth();\n }\n else {\n if (this.options.interval !== 1) {\n this.add(this.options.interval.toString());\n }\n this.add(this.plural(this.options.interval) ? gettext('years') : gettext('year'));\n }\n if (this.bymonthday) {\n this._bymonthday();\n }\n else if (this.byweekday) {\n this._byweekday();\n }\n if (this.options.byyearday) {\n this.add(gettext('on the'))\n .add(this.list(this.options.byyearday, this.nth, gettext('and')))\n .add(gettext('day'));\n }\n if (this.options.byweekno) {\n this.add(gettext('in'))\n .add(this.plural(this.options.byweekno.length)\n ? gettext('weeks')\n : gettext('week'))\n .add(this.list(this.options.byweekno, undefined, gettext('and')));\n }\n };\n ToText.prototype._bymonthday = function () {\n var gettext = this.gettext;\n if (this.byweekday && this.byweekday.allWeeks) {\n this.add(gettext('on'))\n .add(this.list(this.byweekday.allWeeks, this.weekdaytext, gettext('or')))\n .add(gettext('the'))\n .add(this.list(this.bymonthday, this.nth, gettext('or')));\n }\n else {\n this.add(gettext('on the')).add(this.list(this.bymonthday, this.nth, gettext('and')));\n }\n // this.add(gettext('DAY'))\n };\n ToText.prototype._byweekday = function () {\n var gettext = this.gettext;\n if (this.byweekday.allWeeks && !this.byweekday.isWeekdays) {\n this.add(gettext('on')).add(this.list(this.byweekday.allWeeks, this.weekdaytext));\n }\n if (this.byweekday.someWeeks) {\n if (this.byweekday.allWeeks)\n this.add(gettext('and'));\n this.add(gettext('on the')).add(this.list(this.byweekday.someWeeks, this.weekdaytext, gettext('and')));\n }\n };\n ToText.prototype._byhour = function () {\n var gettext = this.gettext;\n this.add(gettext('at')).add(this.list(this.origOptions.byhour, undefined, gettext('and')));\n };\n ToText.prototype._bymonth = function () {\n this.add(this.list(this.options.bymonth, this.monthtext, this.gettext('and')));\n };\n ToText.prototype.nth = function (n) {\n n = parseInt(n.toString(), 10);\n var nth;\n var gettext = this.gettext;\n if (n === -1)\n return gettext('last');\n var npos = Math.abs(n);\n switch (npos) {\n case 1:\n case 21:\n case 31:\n nth = npos + gettext('st');\n break;\n case 2:\n case 22:\n nth = npos + gettext('nd');\n break;\n case 3:\n case 23:\n nth = npos + gettext('rd');\n break;\n default:\n nth = npos + gettext('th');\n }\n return n < 0 ? nth + ' ' + gettext('last') : nth;\n };\n ToText.prototype.monthtext = function (m) {\n return this.language.monthNames[m - 1];\n };\n ToText.prototype.weekdaytext = function (wday) {\n var weekday = isNumber(wday) ? (wday + 1) % 7 : wday.getJsWeekday();\n return ((wday.n ? this.nth(wday.n) + ' ' : '') +\n this.language.dayNames[weekday]);\n };\n ToText.prototype.plural = function (n) {\n return n % 100 !== 1;\n };\n ToText.prototype.add = function (s) {\n this.text.push(' ');\n this.text.push(s);\n return this;\n };\n ToText.prototype.list = function (arr, callback, finalDelim, delim) {\n var _this = this;\n if (delim === void 0) { delim = ','; }\n if (!isArray(arr)) {\n arr = [arr];\n }\n var delimJoin = function (array, delimiter, finalDelimiter) {\n var list = '';\n for (var i = 0; i < array.length; i++) {\n if (i !== 0) {\n if (i === array.length - 1) {\n list += ' ' + finalDelimiter + ' ';\n }\n else {\n list += delimiter + ' ';\n }\n }\n list += array[i];\n }\n return list;\n };\n callback =\n callback ||\n function (o) {\n return o.toString();\n };\n var realCallback = function (arg) {\n return callback && callback.call(_this, arg);\n };\n if (finalDelim) {\n return delimJoin(arr.map(realCallback), delim, finalDelim);\n }\n else {\n return arr.map(realCallback).join(delim + ' ');\n }\n };\n return ToText;\n}());\nexport default ToText;\n//# sourceMappingURL=totext.js.map","import ENGLISH from './i18n';\nimport { RRule } from '../rrule';\n// =============================================================================\n// Parser\n// =============================================================================\nvar Parser = /** @class */ (function () {\n function Parser(rules) {\n this.done = true;\n this.rules = rules;\n }\n Parser.prototype.start = function (text) {\n this.text = text;\n this.done = false;\n return this.nextSymbol();\n };\n Parser.prototype.isDone = function () {\n return this.done && this.symbol === null;\n };\n Parser.prototype.nextSymbol = function () {\n var best;\n var bestSymbol;\n this.symbol = null;\n this.value = null;\n do {\n if (this.done)\n return false;\n var rule = void 0;\n best = null;\n for (var name_1 in this.rules) {\n rule = this.rules[name_1];\n var match = rule.exec(this.text);\n if (match) {\n if (best === null || match[0].length > best[0].length) {\n best = match;\n bestSymbol = name_1;\n }\n }\n }\n if (best != null) {\n this.text = this.text.substr(best[0].length);\n if (this.text === '')\n this.done = true;\n }\n if (best == null) {\n this.done = true;\n this.symbol = null;\n this.value = null;\n return;\n }\n } while (bestSymbol === 'SKIP');\n this.symbol = bestSymbol;\n this.value = best;\n return true;\n };\n Parser.prototype.accept = function (name) {\n if (this.symbol === name) {\n if (this.value) {\n var v = this.value;\n this.nextSymbol();\n return v;\n }\n this.nextSymbol();\n return true;\n }\n return false;\n };\n Parser.prototype.acceptNumber = function () {\n return this.accept('number');\n };\n Parser.prototype.expect = function (name) {\n if (this.accept(name))\n return true;\n throw new Error('expected ' + name + ' but found ' + this.symbol);\n };\n return Parser;\n}());\nexport default function parseText(text, language) {\n if (language === void 0) { language = ENGLISH; }\n var options = {};\n var ttr = new Parser(language.tokens);\n if (!ttr.start(text))\n return null;\n S();\n return options;\n function S() {\n // every [n]\n ttr.expect('every');\n var n = ttr.acceptNumber();\n if (n)\n options.interval = parseInt(n[0], 10);\n if (ttr.isDone())\n throw new Error('Unexpected end');\n switch (ttr.symbol) {\n case 'day(s)':\n options.freq = RRule.DAILY;\n if (ttr.nextSymbol()) {\n AT();\n F();\n }\n break;\n // FIXME Note: every 2 weekdays != every two weeks on weekdays.\n // DAILY on weekdays is not a valid rule\n case 'weekday(s)':\n options.freq = RRule.WEEKLY;\n options.byweekday = [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR];\n ttr.nextSymbol();\n AT();\n F();\n break;\n case 'week(s)':\n options.freq = RRule.WEEKLY;\n if (ttr.nextSymbol()) {\n ON();\n AT();\n F();\n }\n break;\n case 'hour(s)':\n options.freq = RRule.HOURLY;\n if (ttr.nextSymbol()) {\n ON();\n F();\n }\n break;\n case 'minute(s)':\n options.freq = RRule.MINUTELY;\n if (ttr.nextSymbol()) {\n ON();\n F();\n }\n break;\n case 'month(s)':\n options.freq = RRule.MONTHLY;\n if (ttr.nextSymbol()) {\n ON();\n F();\n }\n break;\n case 'year(s)':\n options.freq = RRule.YEARLY;\n if (ttr.nextSymbol()) {\n ON();\n F();\n }\n break;\n case 'monday':\n case 'tuesday':\n case 'wednesday':\n case 'thursday':\n case 'friday':\n case 'saturday':\n case 'sunday':\n options.freq = RRule.WEEKLY;\n var key = ttr.symbol\n .substr(0, 2)\n .toUpperCase();\n options.byweekday = [RRule[key]];\n if (!ttr.nextSymbol())\n return;\n // TODO check for duplicates\n while (ttr.accept('comma')) {\n if (ttr.isDone())\n throw new Error('Unexpected end');\n var wkd = decodeWKD();\n if (!wkd) {\n throw new Error('Unexpected symbol ' + ttr.symbol + ', expected weekday');\n }\n options.byweekday.push(RRule[wkd]);\n ttr.nextSymbol();\n }\n AT();\n MDAYs();\n F();\n break;\n case 'january':\n case 'february':\n case 'march':\n case 'april':\n case 'may':\n case 'june':\n case 'july':\n case 'august':\n case 'september':\n case 'october':\n case 'november':\n case 'december':\n options.freq = RRule.YEARLY;\n options.bymonth = [decodeM()];\n if (!ttr.nextSymbol())\n return;\n // TODO check for duplicates\n while (ttr.accept('comma')) {\n if (ttr.isDone())\n throw new Error('Unexpected end');\n var m = decodeM();\n if (!m) {\n throw new Error('Unexpected symbol ' + ttr.symbol + ', expected month');\n }\n options.bymonth.push(m);\n ttr.nextSymbol();\n }\n ON();\n F();\n break;\n default:\n throw new Error('Unknown symbol');\n }\n }\n function ON() {\n var on = ttr.accept('on');\n var the = ttr.accept('the');\n if (!(on || the))\n return;\n do {\n var nth = decodeNTH();\n var wkd = decodeWKD();\n var m = decodeM();\n // nth | \n if (nth) {\n // ttr.nextSymbol()\n if (wkd) {\n ttr.nextSymbol();\n if (!options.byweekday)\n options.byweekday = [];\n options.byweekday.push(RRule[wkd].nth(nth));\n }\n else {\n if (!options.bymonthday)\n options.bymonthday = [];\n options.bymonthday.push(nth);\n ttr.accept('day(s)');\n }\n // \n }\n else if (wkd) {\n ttr.nextSymbol();\n if (!options.byweekday)\n options.byweekday = [];\n options.byweekday.push(RRule[wkd]);\n }\n else if (ttr.symbol === 'weekday(s)') {\n ttr.nextSymbol();\n if (!options.byweekday) {\n options.byweekday = [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR];\n }\n }\n else if (ttr.symbol === 'week(s)') {\n ttr.nextSymbol();\n var n = ttr.acceptNumber();\n if (!n) {\n throw new Error('Unexpected symbol ' + ttr.symbol + ', expected week number');\n }\n options.byweekno = [parseInt(n[0], 10)];\n while (ttr.accept('comma')) {\n n = ttr.acceptNumber();\n if (!n) {\n throw new Error('Unexpected symbol ' + ttr.symbol + '; expected monthday');\n }\n options.byweekno.push(parseInt(n[0], 10));\n }\n }\n else if (m) {\n ttr.nextSymbol();\n if (!options.bymonth)\n options.bymonth = [];\n options.bymonth.push(m);\n }\n else {\n return;\n }\n } while (ttr.accept('comma') || ttr.accept('the') || ttr.accept('on'));\n }\n function AT() {\n var at = ttr.accept('at');\n if (!at)\n return;\n do {\n var n = ttr.acceptNumber();\n if (!n) {\n throw new Error('Unexpected symbol ' + ttr.symbol + ', expected hour');\n }\n options.byhour = [parseInt(n[0], 10)];\n while (ttr.accept('comma')) {\n n = ttr.acceptNumber();\n if (!n) {\n throw new Error('Unexpected symbol ' + ttr.symbol + '; expected hour');\n }\n options.byhour.push(parseInt(n[0], 10));\n }\n } while (ttr.accept('comma') || ttr.accept('at'));\n }\n function decodeM() {\n switch (ttr.symbol) {\n case 'january':\n return 1;\n case 'february':\n return 2;\n case 'march':\n return 3;\n case 'april':\n return 4;\n case 'may':\n return 5;\n case 'june':\n return 6;\n case 'july':\n return 7;\n case 'august':\n return 8;\n case 'september':\n return 9;\n case 'october':\n return 10;\n case 'november':\n return 11;\n case 'december':\n return 12;\n default:\n return false;\n }\n }\n function decodeWKD() {\n switch (ttr.symbol) {\n case 'monday':\n case 'tuesday':\n case 'wednesday':\n case 'thursday':\n case 'friday':\n case 'saturday':\n case 'sunday':\n return ttr.symbol.substr(0, 2).toUpperCase();\n default:\n return false;\n }\n }\n function decodeNTH() {\n switch (ttr.symbol) {\n case 'last':\n ttr.nextSymbol();\n return -1;\n case 'first':\n ttr.nextSymbol();\n return 1;\n case 'second':\n ttr.nextSymbol();\n return ttr.accept('last') ? -2 : 2;\n case 'third':\n ttr.nextSymbol();\n return ttr.accept('last') ? -3 : 3;\n case 'nth':\n var v = parseInt(ttr.value[1], 10);\n if (v < -366 || v > 366)\n throw new Error('Nth out of range: ' + v);\n ttr.nextSymbol();\n return ttr.accept('last') ? -v : v;\n default:\n return false;\n }\n }\n function MDAYs() {\n ttr.accept('on');\n ttr.accept('the');\n var nth = decodeNTH();\n if (!nth)\n return;\n options.bymonthday = [nth];\n ttr.nextSymbol();\n while (ttr.accept('comma')) {\n nth = decodeNTH();\n if (!nth) {\n throw new Error('Unexpected symbol ' + ttr.symbol + '; expected monthday');\n }\n options.bymonthday.push(nth);\n ttr.nextSymbol();\n }\n }\n function F() {\n if (ttr.symbol === 'until') {\n var date = Date.parse(ttr.text);\n if (!date)\n throw new Error('Cannot parse until date:' + ttr.text);\n options.until = new Date(date);\n }\n else if (ttr.accept('for')) {\n options.count = parseInt(ttr.value[0], 10);\n ttr.expect('number');\n // ttr.expect('times')\n }\n }\n}\n//# sourceMappingURL=parsetext.js.map","import ToText from './totext';\nimport parseText from './parsetext';\nimport { RRule } from '../rrule';\nimport { Frequency } from '../types';\nimport ENGLISH from './i18n';\n/* !\n * rrule.js - Library for working with recurrence rules for calendar dates.\n * https://github.com/jakubroztocil/rrule\n *\n * Copyright 2010, Jakub Roztocil and Lars Schoning\n * Licenced under the BSD licence.\n * https://github.com/jakubroztocil/rrule/blob/master/LICENCE\n *\n */\n/**\n *\n * Implementation of RRule.fromText() and RRule::toText().\n *\n *\n * On the client side, this file needs to be included\n * when those functions are used.\n *\n */\n// =============================================================================\n// fromText\n// =============================================================================\n/**\n * Will be able to convert some of the below described rules from\n * text format to a rule object.\n *\n *\n * RULES\n *\n * Every ([n])\n * day(s)\n * | [weekday], ..., (and) [weekday]\n * | weekday(s)\n * | week(s)\n * | month(s)\n * | [month], ..., (and) [month]\n * | year(s)\n *\n *\n * Plus 0, 1, or multiple of these:\n *\n * on [weekday], ..., (or) [weekday] the [monthday], [monthday], ... (or) [monthday]\n *\n * on [weekday], ..., (and) [weekday]\n *\n * on the [monthday], [monthday], ... (and) [monthday] (day of the month)\n *\n * on the [nth-weekday], ..., (and) [nth-weekday] (of the month/year)\n *\n *\n * Plus 0 or 1 of these:\n *\n * for [n] time(s)\n *\n * until [date]\n *\n * Plus (.)\n *\n *\n * Definitely no supported for parsing:\n *\n * (for year):\n * in week(s) [n], ..., (and) [n]\n *\n * on the [yearday], ..., (and) [n] day of the year\n * on day [yearday], ..., (and) [n]\n *\n *\n * NON-TERMINALS\n *\n * [n]: 1, 2 ..., one, two, three ..\n * [month]: January, February, March, April, May, ... December\n * [weekday]: Monday, ... Sunday\n * [nth-weekday]: first [weekday], 2nd [weekday], ... last [weekday], ...\n * [monthday]: first, 1., 2., 1st, 2nd, second, ... 31st, last day, 2nd last day, ..\n * [date]:\n * - [month] (0-31(,) ([year])),\n * - (the) 0-31.(1-12.([year])),\n * - (the) 0-31/(1-12/([year])),\n * - [weekday]\n *\n * [year]: 0000, 0001, ... 01, 02, ..\n *\n * Definitely not supported for parsing:\n *\n * [yearday]: first, 1., 2., 1st, 2nd, second, ... 366th, last day, 2nd last day, ..\n *\n * @param {String} text\n * @return {Object, Boolean} the rule, or null.\n */\nvar fromText = function (text, language) {\n if (language === void 0) { language = ENGLISH; }\n return new RRule(parseText(text, language) || undefined);\n};\nvar common = [\n 'count',\n 'until',\n 'interval',\n 'byweekday',\n 'bymonthday',\n 'bymonth',\n];\nToText.IMPLEMENTED = [];\nToText.IMPLEMENTED[Frequency.HOURLY] = common;\nToText.IMPLEMENTED[Frequency.MINUTELY] = common;\nToText.IMPLEMENTED[Frequency.DAILY] = ['byhour'].concat(common);\nToText.IMPLEMENTED[Frequency.WEEKLY] = common;\nToText.IMPLEMENTED[Frequency.MONTHLY] = common;\nToText.IMPLEMENTED[Frequency.YEARLY] = ['byweekno', 'byyearday'].concat(common);\n// =============================================================================\n// Export\n// =============================================================================\nvar toText = function (rrule, gettext, language, dateFormatter) {\n return new ToText(rrule, gettext, language, dateFormatter).toString();\n};\nvar isFullyConvertible = ToText.isFullyConvertible;\nexport { fromText, parseText, isFullyConvertible, toText };\n//# sourceMappingURL=index.js.map","import { __extends } from \"tslib\";\nimport { Frequency } from './types';\nimport { pymod, divmod, empty, includes } from './helpers';\nimport { getWeekday, MAXYEAR, monthRange } from './dateutil';\nvar Time = /** @class */ (function () {\n function Time(hour, minute, second, millisecond) {\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n this.millisecond = millisecond || 0;\n }\n Time.prototype.getHours = function () {\n return this.hour;\n };\n Time.prototype.getMinutes = function () {\n return this.minute;\n };\n Time.prototype.getSeconds = function () {\n return this.second;\n };\n Time.prototype.getMilliseconds = function () {\n return this.millisecond;\n };\n Time.prototype.getTime = function () {\n return ((this.hour * 60 * 60 + this.minute * 60 + this.second) * 1000 +\n this.millisecond);\n };\n return Time;\n}());\nexport { Time };\nvar DateTime = /** @class */ (function (_super) {\n __extends(DateTime, _super);\n function DateTime(year, month, day, hour, minute, second, millisecond) {\n var _this = _super.call(this, hour, minute, second, millisecond) || this;\n _this.year = year;\n _this.month = month;\n _this.day = day;\n return _this;\n }\n DateTime.fromDate = function (date) {\n return new this(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.valueOf() % 1000);\n };\n DateTime.prototype.getWeekday = function () {\n return getWeekday(new Date(this.getTime()));\n };\n DateTime.prototype.getTime = function () {\n return new Date(Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond)).getTime();\n };\n DateTime.prototype.getDay = function () {\n return this.day;\n };\n DateTime.prototype.getMonth = function () {\n return this.month;\n };\n DateTime.prototype.getYear = function () {\n return this.year;\n };\n DateTime.prototype.addYears = function (years) {\n this.year += years;\n };\n DateTime.prototype.addMonths = function (months) {\n this.month += months;\n if (this.month > 12) {\n var yearDiv = Math.floor(this.month / 12);\n var monthMod = pymod(this.month, 12);\n this.month = monthMod;\n this.year += yearDiv;\n if (this.month === 0) {\n this.month = 12;\n --this.year;\n }\n }\n };\n DateTime.prototype.addWeekly = function (days, wkst) {\n if (wkst > this.getWeekday()) {\n this.day += -(this.getWeekday() + 1 + (6 - wkst)) + days * 7;\n }\n else {\n this.day += -(this.getWeekday() - wkst) + days * 7;\n }\n this.fixDay();\n };\n DateTime.prototype.addDaily = function (days) {\n this.day += days;\n this.fixDay();\n };\n DateTime.prototype.addHours = function (hours, filtered, byhour) {\n if (filtered) {\n // Jump to one iteration before next day\n this.hour += Math.floor((23 - this.hour) / hours) * hours;\n }\n for (;;) {\n this.hour += hours;\n var _a = divmod(this.hour, 24), dayDiv = _a.div, hourMod = _a.mod;\n if (dayDiv) {\n this.hour = hourMod;\n this.addDaily(dayDiv);\n }\n if (empty(byhour) || includes(byhour, this.hour))\n break;\n }\n };\n DateTime.prototype.addMinutes = function (minutes, filtered, byhour, byminute) {\n if (filtered) {\n // Jump to one iteration before next day\n this.minute +=\n Math.floor((1439 - (this.hour * 60 + this.minute)) / minutes) * minutes;\n }\n for (;;) {\n this.minute += minutes;\n var _a = divmod(this.minute, 60), hourDiv = _a.div, minuteMod = _a.mod;\n if (hourDiv) {\n this.minute = minuteMod;\n this.addHours(hourDiv, false, byhour);\n }\n if ((empty(byhour) || includes(byhour, this.hour)) &&\n (empty(byminute) || includes(byminute, this.minute))) {\n break;\n }\n }\n };\n DateTime.prototype.addSeconds = function (seconds, filtered, byhour, byminute, bysecond) {\n if (filtered) {\n // Jump to one iteration before next day\n this.second +=\n Math.floor((86399 - (this.hour * 3600 + this.minute * 60 + this.second)) /\n seconds) * seconds;\n }\n for (;;) {\n this.second += seconds;\n var _a = divmod(this.second, 60), minuteDiv = _a.div, secondMod = _a.mod;\n if (minuteDiv) {\n this.second = secondMod;\n this.addMinutes(minuteDiv, false, byhour, byminute);\n }\n if ((empty(byhour) || includes(byhour, this.hour)) &&\n (empty(byminute) || includes(byminute, this.minute)) &&\n (empty(bysecond) || includes(bysecond, this.second))) {\n break;\n }\n }\n };\n DateTime.prototype.fixDay = function () {\n if (this.day <= 28) {\n return;\n }\n var daysinmonth = monthRange(this.year, this.month - 1)[1];\n if (this.day <= daysinmonth) {\n return;\n }\n while (this.day > daysinmonth) {\n this.day -= daysinmonth;\n ++this.month;\n if (this.month === 13) {\n this.month = 1;\n ++this.year;\n if (this.year > MAXYEAR) {\n return;\n }\n }\n daysinmonth = monthRange(this.year, this.month - 1)[1];\n }\n };\n DateTime.prototype.add = function (options, filtered) {\n var freq = options.freq, interval = options.interval, wkst = options.wkst, byhour = options.byhour, byminute = options.byminute, bysecond = options.bysecond;\n switch (freq) {\n case Frequency.YEARLY:\n return this.addYears(interval);\n case Frequency.MONTHLY:\n return this.addMonths(interval);\n case Frequency.WEEKLY:\n return this.addWeekly(interval, wkst);\n case Frequency.DAILY:\n return this.addDaily(interval);\n case Frequency.HOURLY:\n return this.addHours(interval, filtered, byhour);\n case Frequency.MINUTELY:\n return this.addMinutes(interval, filtered, byhour, byminute);\n case Frequency.SECONDLY:\n return this.addSeconds(interval, filtered, byhour, byminute, bysecond);\n }\n };\n return DateTime;\n}(Time));\nexport { DateTime };\n//# sourceMappingURL=datetime.js.map","import { __assign } from \"tslib\";\nimport { freqIsDailyOrGreater } from './types';\nimport { includes, notEmpty, isPresent, isNumber, isArray, isWeekdayStr, } from './helpers';\nimport { RRule, defaultKeys, DEFAULT_OPTIONS } from './rrule';\nimport { getWeekday, isDate, isValidDate } from './dateutil';\nimport { Weekday } from './weekday';\nimport { Time } from './datetime';\nexport function initializeOptions(options) {\n var invalid = [];\n var keys = Object.keys(options);\n // Shallow copy for options and origOptions and check for invalid\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (!includes(defaultKeys, key))\n invalid.push(key);\n if (isDate(options[key]) && !isValidDate(options[key])) {\n invalid.push(key);\n }\n }\n if (invalid.length) {\n throw new Error('Invalid options: ' + invalid.join(', '));\n }\n return __assign({}, options);\n}\nexport function parseOptions(options) {\n var opts = __assign(__assign({}, DEFAULT_OPTIONS), initializeOptions(options));\n if (isPresent(opts.byeaster))\n opts.freq = RRule.YEARLY;\n if (!(isPresent(opts.freq) && RRule.FREQUENCIES[opts.freq])) {\n throw new Error(\"Invalid frequency: \".concat(opts.freq, \" \").concat(options.freq));\n }\n if (!opts.dtstart)\n opts.dtstart = new Date(new Date().setMilliseconds(0));\n if (!isPresent(opts.wkst)) {\n opts.wkst = RRule.MO.weekday;\n }\n else if (isNumber(opts.wkst)) {\n // cool, just keep it like that\n }\n else {\n opts.wkst = opts.wkst.weekday;\n }\n if (isPresent(opts.bysetpos)) {\n if (isNumber(opts.bysetpos))\n opts.bysetpos = [opts.bysetpos];\n for (var i = 0; i < opts.bysetpos.length; i++) {\n var v = opts.bysetpos[i];\n if (v === 0 || !(v >= -366 && v <= 366)) {\n throw new Error('bysetpos must be between 1 and 366,' + ' or between -366 and -1');\n }\n }\n }\n if (!(Boolean(opts.byweekno) ||\n notEmpty(opts.byweekno) ||\n notEmpty(opts.byyearday) ||\n Boolean(opts.bymonthday) ||\n notEmpty(opts.bymonthday) ||\n isPresent(opts.byweekday) ||\n isPresent(opts.byeaster))) {\n switch (opts.freq) {\n case RRule.YEARLY:\n if (!opts.bymonth)\n opts.bymonth = opts.dtstart.getUTCMonth() + 1;\n opts.bymonthday = opts.dtstart.getUTCDate();\n break;\n case RRule.MONTHLY:\n opts.bymonthday = opts.dtstart.getUTCDate();\n break;\n case RRule.WEEKLY:\n opts.byweekday = [getWeekday(opts.dtstart)];\n break;\n }\n }\n // bymonth\n if (isPresent(opts.bymonth) && !isArray(opts.bymonth)) {\n opts.bymonth = [opts.bymonth];\n }\n // byyearday\n if (isPresent(opts.byyearday) &&\n !isArray(opts.byyearday) &&\n isNumber(opts.byyearday)) {\n opts.byyearday = [opts.byyearday];\n }\n // bymonthday\n if (!isPresent(opts.bymonthday)) {\n opts.bymonthday = [];\n opts.bynmonthday = [];\n }\n else if (isArray(opts.bymonthday)) {\n var bymonthday = [];\n var bynmonthday = [];\n for (var i = 0; i < opts.bymonthday.length; i++) {\n var v = opts.bymonthday[i];\n if (v > 0) {\n bymonthday.push(v);\n }\n else if (v < 0) {\n bynmonthday.push(v);\n }\n }\n opts.bymonthday = bymonthday;\n opts.bynmonthday = bynmonthday;\n }\n else if (opts.bymonthday < 0) {\n opts.bynmonthday = [opts.bymonthday];\n opts.bymonthday = [];\n }\n else {\n opts.bynmonthday = [];\n opts.bymonthday = [opts.bymonthday];\n }\n // byweekno\n if (isPresent(opts.byweekno) && !isArray(opts.byweekno)) {\n opts.byweekno = [opts.byweekno];\n }\n // byweekday / bynweekday\n if (!isPresent(opts.byweekday)) {\n opts.bynweekday = null;\n }\n else if (isNumber(opts.byweekday)) {\n opts.byweekday = [opts.byweekday];\n opts.bynweekday = null;\n }\n else if (isWeekdayStr(opts.byweekday)) {\n opts.byweekday = [Weekday.fromStr(opts.byweekday).weekday];\n opts.bynweekday = null;\n }\n else if (opts.byweekday instanceof Weekday) {\n if (!opts.byweekday.n || opts.freq > RRule.MONTHLY) {\n opts.byweekday = [opts.byweekday.weekday];\n opts.bynweekday = null;\n }\n else {\n opts.bynweekday = [[opts.byweekday.weekday, opts.byweekday.n]];\n opts.byweekday = null;\n }\n }\n else {\n var byweekday = [];\n var bynweekday = [];\n for (var i = 0; i < opts.byweekday.length; i++) {\n var wday = opts.byweekday[i];\n if (isNumber(wday)) {\n byweekday.push(wday);\n continue;\n }\n else if (isWeekdayStr(wday)) {\n byweekday.push(Weekday.fromStr(wday).weekday);\n continue;\n }\n if (!wday.n || opts.freq > RRule.MONTHLY) {\n byweekday.push(wday.weekday);\n }\n else {\n bynweekday.push([wday.weekday, wday.n]);\n }\n }\n opts.byweekday = notEmpty(byweekday) ? byweekday : null;\n opts.bynweekday = notEmpty(bynweekday) ? bynweekday : null;\n }\n // byhour\n if (!isPresent(opts.byhour)) {\n opts.byhour = opts.freq < RRule.HOURLY ? [opts.dtstart.getUTCHours()] : null;\n }\n else if (isNumber(opts.byhour)) {\n opts.byhour = [opts.byhour];\n }\n // byminute\n if (!isPresent(opts.byminute)) {\n opts.byminute =\n opts.freq < RRule.MINUTELY ? [opts.dtstart.getUTCMinutes()] : null;\n }\n else if (isNumber(opts.byminute)) {\n opts.byminute = [opts.byminute];\n }\n // bysecond\n if (!isPresent(opts.bysecond)) {\n opts.bysecond =\n opts.freq < RRule.SECONDLY ? [opts.dtstart.getUTCSeconds()] : null;\n }\n else if (isNumber(opts.bysecond)) {\n opts.bysecond = [opts.bysecond];\n }\n return { parsedOptions: opts };\n}\nexport function buildTimeset(opts) {\n var millisecondModulo = opts.dtstart.getTime() % 1000;\n if (!freqIsDailyOrGreater(opts.freq)) {\n return [];\n }\n var timeset = [];\n opts.byhour.forEach(function (hour) {\n opts.byminute.forEach(function (minute) {\n opts.bysecond.forEach(function (second) {\n timeset.push(new Time(hour, minute, second, millisecondModulo));\n });\n });\n });\n return timeset;\n}\n//# sourceMappingURL=parseoptions.js.map","import { __assign } from \"tslib\";\nimport { Frequency } from './types';\nimport { Weekday } from './weekday';\nimport { untilStringToDate } from './dateutil';\nimport { Days } from './rrule';\nexport function parseString(rfcString) {\n var options = rfcString\n .split('\\n')\n .map(parseLine)\n .filter(function (x) { return x !== null; });\n return __assign(__assign({}, options[0]), options[1]);\n}\nexport function parseDtstart(line) {\n var options = {};\n var dtstartWithZone = /DTSTART(?:;TZID=([^:=]+?))?(?::|=)([^;\\s]+)/i.exec(line);\n if (!dtstartWithZone) {\n return options;\n }\n var tzid = dtstartWithZone[1], dtstart = dtstartWithZone[2];\n if (tzid) {\n options.tzid = tzid;\n }\n options.dtstart = untilStringToDate(dtstart);\n return options;\n}\nfunction parseLine(rfcString) {\n rfcString = rfcString.replace(/^\\s+|\\s+$/, '');\n if (!rfcString.length)\n return null;\n var header = /^([A-Z]+?)[:;]/.exec(rfcString.toUpperCase());\n if (!header) {\n return parseRrule(rfcString);\n }\n var key = header[1];\n switch (key.toUpperCase()) {\n case 'RRULE':\n case 'EXRULE':\n return parseRrule(rfcString);\n case 'DTSTART':\n return parseDtstart(rfcString);\n default:\n throw new Error(\"Unsupported RFC prop \".concat(key, \" in \").concat(rfcString));\n }\n}\nfunction parseRrule(line) {\n var strippedLine = line.replace(/^RRULE:/i, '');\n var options = parseDtstart(strippedLine);\n var attrs = line.replace(/^(?:RRULE|EXRULE):/i, '').split(';');\n attrs.forEach(function (attr) {\n var _a = attr.split('='), key = _a[0], value = _a[1];\n switch (key.toUpperCase()) {\n case 'FREQ':\n options.freq = Frequency[value.toUpperCase()];\n break;\n case 'WKST':\n options.wkst = Days[value.toUpperCase()];\n break;\n case 'COUNT':\n case 'INTERVAL':\n case 'BYSETPOS':\n case 'BYMONTH':\n case 'BYMONTHDAY':\n case 'BYYEARDAY':\n case 'BYWEEKNO':\n case 'BYHOUR':\n case 'BYMINUTE':\n case 'BYSECOND':\n var num = parseNumber(value);\n var optionKey = key.toLowerCase();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n options[optionKey] = num;\n break;\n case 'BYWEEKDAY':\n case 'BYDAY':\n options.byweekday = parseWeekday(value);\n break;\n case 'DTSTART':\n case 'TZID':\n // for backwards compatibility\n var dtstart = parseDtstart(line);\n options.tzid = dtstart.tzid;\n options.dtstart = dtstart.dtstart;\n break;\n case 'UNTIL':\n options.until = untilStringToDate(value);\n break;\n case 'BYEASTER':\n options.byeaster = Number(value);\n break;\n default:\n throw new Error(\"Unknown RRULE property '\" + key + \"'\");\n }\n });\n return options;\n}\nfunction parseNumber(value) {\n if (value.indexOf(',') !== -1) {\n var values = value.split(',');\n return values.map(parseIndividualNumber);\n }\n return parseIndividualNumber(value);\n}\nfunction parseIndividualNumber(value) {\n if (/^[+-]?\\d+$/.test(value)) {\n return Number(value);\n }\n return value;\n}\nfunction parseWeekday(value) {\n var days = value.split(',');\n return days.map(function (day) {\n if (day.length === 2) {\n // MO, TU, ...\n return Days[day]; // wday instanceof Weekday\n }\n // -1MO, +3FR, 1SO, 13TU ...\n var parts = day.match(/^([+-]?\\d{1,2})([A-Z]{2})$/);\n if (!parts || parts.length < 3) {\n throw new SyntaxError(\"Invalid weekday string: \".concat(day));\n }\n var n = Number(parts[1]);\n var wdaypart = parts[2];\n var wday = Days[wdaypart].weekday;\n return new Weekday(wday, n);\n });\n}\n//# sourceMappingURL=parsestring.js.map","import { dateInTimeZone, timeToUntilString } from './dateutil';\nvar DateWithZone = /** @class */ (function () {\n function DateWithZone(date, tzid) {\n if (isNaN(date.getTime())) {\n throw new RangeError('Invalid date passed to DateWithZone');\n }\n this.date = date;\n this.tzid = tzid;\n }\n Object.defineProperty(DateWithZone.prototype, \"isUTC\", {\n get: function () {\n return !this.tzid || this.tzid.toUpperCase() === 'UTC';\n },\n enumerable: false,\n configurable: true\n });\n DateWithZone.prototype.toString = function () {\n var datestr = timeToUntilString(this.date.getTime(), this.isUTC);\n if (!this.isUTC) {\n return \";TZID=\".concat(this.tzid, \":\").concat(datestr);\n }\n return \":\".concat(datestr);\n };\n DateWithZone.prototype.getTime = function () {\n return this.date.getTime();\n };\n DateWithZone.prototype.rezonedDate = function () {\n if (this.isUTC) {\n return this.date;\n }\n return dateInTimeZone(this.date, this.tzid);\n };\n return DateWithZone;\n}());\nexport { DateWithZone };\n//# sourceMappingURL=datewithzone.js.map","import { RRule, DEFAULT_OPTIONS } from './rrule';\nimport { includes, isPresent, isArray, isNumber, toArray } from './helpers';\nimport { Weekday } from './weekday';\nimport { timeToUntilString } from './dateutil';\nimport { DateWithZone } from './datewithzone';\nexport function optionsToString(options) {\n var rrule = [];\n var dtstart = '';\n var keys = Object.keys(options);\n var defaultKeys = Object.keys(DEFAULT_OPTIONS);\n for (var i = 0; i < keys.length; i++) {\n if (keys[i] === 'tzid')\n continue;\n if (!includes(defaultKeys, keys[i]))\n continue;\n var key = keys[i].toUpperCase();\n var value = options[keys[i]];\n var outValue = '';\n if (!isPresent(value) || (isArray(value) && !value.length))\n continue;\n switch (key) {\n case 'FREQ':\n outValue = RRule.FREQUENCIES[options.freq];\n break;\n case 'WKST':\n if (isNumber(value)) {\n outValue = new Weekday(value).toString();\n }\n else {\n outValue = value.toString();\n }\n break;\n case 'BYWEEKDAY':\n /*\n NOTE: BYWEEKDAY is a special case.\n RRule() deconstructs the rule.options.byweekday array\n into an array of Weekday arguments.\n On the other hand, rule.origOptions is an array of Weekdays.\n We need to handle both cases here.\n It might be worth change RRule to keep the Weekdays.\n \n Also, BYWEEKDAY (used by RRule) vs. BYDAY (RFC)\n \n */\n key = 'BYDAY';\n outValue = toArray(value)\n .map(function (wday) {\n if (wday instanceof Weekday) {\n return wday;\n }\n if (isArray(wday)) {\n return new Weekday(wday[0], wday[1]);\n }\n return new Weekday(wday);\n })\n .toString();\n break;\n case 'DTSTART':\n dtstart = buildDtstart(value, options.tzid);\n break;\n case 'UNTIL':\n outValue = timeToUntilString(value, !options.tzid);\n break;\n default:\n if (isArray(value)) {\n var strValues = [];\n for (var j = 0; j < value.length; j++) {\n strValues[j] = String(value[j]);\n }\n outValue = strValues.toString();\n }\n else {\n outValue = String(value);\n }\n }\n if (outValue) {\n rrule.push([key, outValue]);\n }\n }\n var rules = rrule\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n return \"\".concat(key, \"=\").concat(value.toString());\n })\n .join(';');\n var ruleString = '';\n if (rules !== '') {\n ruleString = \"RRULE:\".concat(rules);\n }\n return [dtstart, ruleString].filter(function (x) { return !!x; }).join('\\n');\n}\nfunction buildDtstart(dtstart, tzid) {\n if (!dtstart) {\n return '';\n }\n return 'DTSTART' + new DateWithZone(new Date(dtstart), tzid).toString();\n}\n//# sourceMappingURL=optionstostring.js.map","import IterResult from './iterresult';\nimport { clone, cloneDates } from './dateutil';\nimport { isArray } from './helpers';\nfunction argsMatch(left, right) {\n if (Array.isArray(left)) {\n if (!Array.isArray(right))\n return false;\n if (left.length !== right.length)\n return false;\n return left.every(function (date, i) { return date.getTime() === right[i].getTime(); });\n }\n if (left instanceof Date) {\n return right instanceof Date && left.getTime() === right.getTime();\n }\n return left === right;\n}\nvar Cache = /** @class */ (function () {\n function Cache() {\n this.all = false;\n this.before = [];\n this.after = [];\n this.between = [];\n }\n /**\n * @param {String} what - all/before/after/between\n * @param {Array,Date} value - an array of dates, one date, or null\n * @param {Object?} args - _iter arguments\n */\n Cache.prototype._cacheAdd = function (what, value, args) {\n if (value) {\n value = value instanceof Date ? clone(value) : cloneDates(value);\n }\n if (what === 'all') {\n this.all = value;\n }\n else {\n args._value = value;\n this[what].push(args);\n }\n };\n /**\n * @return false - not in the cache\n * @return null - cached, but zero occurrences (before/after)\n * @return Date - cached (before/after)\n * @return [] - cached, but zero occurrences (all/between)\n * @return [Date1, DateN] - cached (all/between)\n */\n Cache.prototype._cacheGet = function (what, args) {\n var cached = false;\n var argsKeys = args ? Object.keys(args) : [];\n var findCacheDiff = function (item) {\n for (var i = 0; i < argsKeys.length; i++) {\n var key = argsKeys[i];\n if (!argsMatch(args[key], item[key])) {\n return true;\n }\n }\n return false;\n };\n var cachedObject = this[what];\n if (what === 'all') {\n cached = this.all;\n }\n else if (isArray(cachedObject)) {\n // Let's see whether we've already called the\n // 'what' method with the same 'args'\n for (var i = 0; i < cachedObject.length; i++) {\n var item = cachedObject[i];\n if (argsKeys.length && findCacheDiff(item))\n continue;\n cached = item._value;\n break;\n }\n }\n if (!cached && this.all) {\n // Not in the cache, but we already know all the occurrences,\n // so we can find the correct dates from the cached ones.\n var iterResult = new IterResult(what, args);\n for (var i = 0; i < this.all.length; i++) {\n if (!iterResult.accept(this.all[i]))\n break;\n }\n cached = iterResult.getValue();\n this._cacheAdd(what, cached, args);\n }\n return isArray(cached)\n ? cloneDates(cached)\n : cached instanceof Date\n ? clone(cached)\n : cached;\n };\n return Cache;\n}());\nexport { Cache };\n//# sourceMappingURL=cache.js.map","import { __spreadArray } from \"tslib\";\nimport { range, repeat } from './helpers';\n// =============================================================================\n// Date masks\n// =============================================================================\n// Every mask is 7 days longer to handle cross-year weekly periods.\nvar M365MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], repeat(1, 31), true), repeat(2, 28), true), repeat(3, 31), true), repeat(4, 30), true), repeat(5, 31), true), repeat(6, 30), true), repeat(7, 31), true), repeat(8, 31), true), repeat(9, 30), true), repeat(10, 31), true), repeat(11, 30), true), repeat(12, 31), true), repeat(1, 7), true);\nvar M366MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], repeat(1, 31), true), repeat(2, 29), true), repeat(3, 31), true), repeat(4, 30), true), repeat(5, 31), true), repeat(6, 30), true), repeat(7, 31), true), repeat(8, 31), true), repeat(9, 30), true), repeat(10, 31), true), repeat(11, 30), true), repeat(12, 31), true), repeat(1, 7), true);\nvar M28 = range(1, 29);\nvar M29 = range(1, 30);\nvar M30 = range(1, 31);\nvar M31 = range(1, 32);\nvar MDAY366MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], M31, true), M29, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31.slice(0, 7), true);\nvar MDAY365MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], M31, true), M28, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31.slice(0, 7), true);\nvar NM28 = range(-28, 0);\nvar NM29 = range(-29, 0);\nvar NM30 = range(-30, 0);\nvar NM31 = range(-31, 0);\nvar NMDAY366MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], NM31, true), NM29, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31.slice(0, 7), true);\nvar NMDAY365MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], NM31, true), NM28, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31.slice(0, 7), true);\nvar M366RANGE = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366];\nvar M365RANGE = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];\nvar WDAYMASK = (function () {\n var wdaymask = [];\n for (var i = 0; i < 55; i++)\n wdaymask = wdaymask.concat(range(7));\n return wdaymask;\n})();\nexport { WDAYMASK, M365MASK, M365RANGE, M366MASK, M366RANGE, MDAY365MASK, MDAY366MASK, NMDAY365MASK, NMDAY366MASK, };\n//# sourceMappingURL=masks.js.map","import { __assign } from \"tslib\";\nimport { datetime, getWeekday, isLeapYear, toOrdinal } from '../dateutil';\nimport { empty, repeat, pymod, includes } from '../helpers';\nimport { M365MASK, MDAY365MASK, NMDAY365MASK, WDAYMASK, M365RANGE, M366MASK, MDAY366MASK, NMDAY366MASK, M366RANGE, } from '../masks';\nexport function rebuildYear(year, options) {\n var firstyday = datetime(year, 1, 1);\n var yearlen = isLeapYear(year) ? 366 : 365;\n var nextyearlen = isLeapYear(year + 1) ? 366 : 365;\n var yearordinal = toOrdinal(firstyday);\n var yearweekday = getWeekday(firstyday);\n var result = __assign(__assign({ yearlen: yearlen, nextyearlen: nextyearlen, yearordinal: yearordinal, yearweekday: yearweekday }, baseYearMasks(year)), { wnomask: null });\n if (empty(options.byweekno)) {\n return result;\n }\n result.wnomask = repeat(0, yearlen + 7);\n var firstwkst;\n var wyearlen;\n var no1wkst = (firstwkst = pymod(7 - yearweekday + options.wkst, 7));\n if (no1wkst >= 4) {\n no1wkst = 0;\n // Number of days in the year, plus the days we got\n // from last year.\n wyearlen = result.yearlen + pymod(yearweekday - options.wkst, 7);\n }\n else {\n // Number of days in the year, minus the days we\n // left in last year.\n wyearlen = yearlen - no1wkst;\n }\n var div = Math.floor(wyearlen / 7);\n var mod = pymod(wyearlen, 7);\n var numweeks = Math.floor(div + mod / 4);\n for (var j = 0; j < options.byweekno.length; j++) {\n var n = options.byweekno[j];\n if (n < 0) {\n n += numweeks + 1;\n }\n if (!(n > 0 && n <= numweeks)) {\n continue;\n }\n var i = void 0;\n if (n > 1) {\n i = no1wkst + (n - 1) * 7;\n if (no1wkst !== firstwkst) {\n i -= 7 - firstwkst;\n }\n }\n else {\n i = no1wkst;\n }\n for (var k = 0; k < 7; k++) {\n result.wnomask[i] = 1;\n i++;\n if (result.wdaymask[i] === options.wkst)\n break;\n }\n }\n if (includes(options.byweekno, 1)) {\n // Check week number 1 of next year as well\n // orig-TODO : Check -numweeks for next year.\n var i = no1wkst + numweeks * 7;\n if (no1wkst !== firstwkst)\n i -= 7 - firstwkst;\n if (i < yearlen) {\n // If week starts in next year, we\n // don't care about it.\n for (var j = 0; j < 7; j++) {\n result.wnomask[i] = 1;\n i += 1;\n if (result.wdaymask[i] === options.wkst)\n break;\n }\n }\n }\n if (no1wkst) {\n // Check last week number of last year as\n // well. If no1wkst is 0, either the year\n // started on week start, or week number 1\n // got days from last year, so there are no\n // days from last year's last week number in\n // this year.\n var lnumweeks = void 0;\n if (!includes(options.byweekno, -1)) {\n var lyearweekday = getWeekday(datetime(year - 1, 1, 1));\n var lno1wkst = pymod(7 - lyearweekday.valueOf() + options.wkst, 7);\n var lyearlen = isLeapYear(year - 1) ? 366 : 365;\n var weekst = void 0;\n if (lno1wkst >= 4) {\n lno1wkst = 0;\n weekst = lyearlen + pymod(lyearweekday - options.wkst, 7);\n }\n else {\n weekst = yearlen - no1wkst;\n }\n lnumweeks = Math.floor(52 + pymod(weekst, 7) / 4);\n }\n else {\n lnumweeks = -1;\n }\n if (includes(options.byweekno, lnumweeks)) {\n for (var i = 0; i < no1wkst; i++)\n result.wnomask[i] = 1;\n }\n }\n return result;\n}\nfunction baseYearMasks(year) {\n var yearlen = isLeapYear(year) ? 366 : 365;\n var firstyday = datetime(year, 1, 1);\n var wday = getWeekday(firstyday);\n if (yearlen === 365) {\n return {\n mmask: M365MASK,\n mdaymask: MDAY365MASK,\n nmdaymask: NMDAY365MASK,\n wdaymask: WDAYMASK.slice(wday),\n mrange: M365RANGE,\n };\n }\n return {\n mmask: M366MASK,\n mdaymask: MDAY366MASK,\n nmdaymask: NMDAY366MASK,\n wdaymask: WDAYMASK.slice(wday),\n mrange: M366RANGE,\n };\n}\n//# sourceMappingURL=yearinfo.js.map","import { notEmpty, repeat, range, isPresent } from '../helpers';\nimport { Frequency } from '../types';\nimport { rebuildYear } from './yearinfo';\nimport { rebuildMonth } from './monthinfo';\nimport { easter } from './easter';\nimport { Time } from '../datetime';\nimport { datetime, sort, toOrdinal } from '../dateutil';\n// =============================================================================\n// Iterinfo\n// =============================================================================\nvar Iterinfo = /** @class */ (function () {\n // eslint-disable-next-line no-empty-function\n function Iterinfo(options) {\n this.options = options;\n }\n Iterinfo.prototype.rebuild = function (year, month) {\n var options = this.options;\n if (year !== this.lastyear) {\n this.yearinfo = rebuildYear(year, options);\n }\n if (notEmpty(options.bynweekday) &&\n (month !== this.lastmonth || year !== this.lastyear)) {\n var _a = this.yearinfo, yearlen = _a.yearlen, mrange = _a.mrange, wdaymask = _a.wdaymask;\n this.monthinfo = rebuildMonth(year, month, yearlen, mrange, wdaymask, options);\n }\n if (isPresent(options.byeaster)) {\n this.eastermask = easter(year, options.byeaster);\n }\n };\n Object.defineProperty(Iterinfo.prototype, \"lastyear\", {\n get: function () {\n return this.monthinfo ? this.monthinfo.lastyear : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"lastmonth\", {\n get: function () {\n return this.monthinfo ? this.monthinfo.lastmonth : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"yearlen\", {\n get: function () {\n return this.yearinfo.yearlen;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"yearordinal\", {\n get: function () {\n return this.yearinfo.yearordinal;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"mrange\", {\n get: function () {\n return this.yearinfo.mrange;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"wdaymask\", {\n get: function () {\n return this.yearinfo.wdaymask;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"mmask\", {\n get: function () {\n return this.yearinfo.mmask;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"wnomask\", {\n get: function () {\n return this.yearinfo.wnomask;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"nwdaymask\", {\n get: function () {\n return this.monthinfo ? this.monthinfo.nwdaymask : [];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"nextyearlen\", {\n get: function () {\n return this.yearinfo.nextyearlen;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"mdaymask\", {\n get: function () {\n return this.yearinfo.mdaymask;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"nmdaymask\", {\n get: function () {\n return this.yearinfo.nmdaymask;\n },\n enumerable: false,\n configurable: true\n });\n Iterinfo.prototype.ydayset = function () {\n return [range(this.yearlen), 0, this.yearlen];\n };\n Iterinfo.prototype.mdayset = function (_, month) {\n var start = this.mrange[month - 1];\n var end = this.mrange[month];\n var set = repeat(null, this.yearlen);\n for (var i = start; i < end; i++)\n set[i] = i;\n return [set, start, end];\n };\n Iterinfo.prototype.wdayset = function (year, month, day) {\n // We need to handle cross-year weeks here.\n var set = repeat(null, this.yearlen + 7);\n var i = toOrdinal(datetime(year, month, day)) - this.yearordinal;\n var start = i;\n for (var j = 0; j < 7; j++) {\n set[i] = i;\n ++i;\n if (this.wdaymask[i] === this.options.wkst)\n break;\n }\n return [set, start, i];\n };\n Iterinfo.prototype.ddayset = function (year, month, day) {\n var set = repeat(null, this.yearlen);\n var i = toOrdinal(datetime(year, month, day)) - this.yearordinal;\n set[i] = i;\n return [set, i, i + 1];\n };\n Iterinfo.prototype.htimeset = function (hour, _, second, millisecond) {\n var _this = this;\n var set = [];\n this.options.byminute.forEach(function (minute) {\n set = set.concat(_this.mtimeset(hour, minute, second, millisecond));\n });\n sort(set);\n return set;\n };\n Iterinfo.prototype.mtimeset = function (hour, minute, _, millisecond) {\n var set = this.options.bysecond.map(function (second) { return new Time(hour, minute, second, millisecond); });\n sort(set);\n return set;\n };\n Iterinfo.prototype.stimeset = function (hour, minute, second, millisecond) {\n return [new Time(hour, minute, second, millisecond)];\n };\n Iterinfo.prototype.getdayset = function (freq) {\n switch (freq) {\n case Frequency.YEARLY:\n return this.ydayset.bind(this);\n case Frequency.MONTHLY:\n return this.mdayset.bind(this);\n case Frequency.WEEKLY:\n return this.wdayset.bind(this);\n case Frequency.DAILY:\n return this.ddayset.bind(this);\n default:\n return this.ddayset.bind(this);\n }\n };\n Iterinfo.prototype.gettimeset = function (freq) {\n switch (freq) {\n case Frequency.HOURLY:\n return this.htimeset.bind(this);\n case Frequency.MINUTELY:\n return this.mtimeset.bind(this);\n case Frequency.SECONDLY:\n return this.stimeset.bind(this);\n }\n };\n return Iterinfo;\n}());\nexport default Iterinfo;\n//# sourceMappingURL=index.js.map","import { RRule } from '../rrule';\nimport { empty, repeat, pymod } from '../helpers';\nexport function rebuildMonth(year, month, yearlen, mrange, wdaymask, options) {\n var result = {\n lastyear: year,\n lastmonth: month,\n nwdaymask: [],\n };\n var ranges = [];\n if (options.freq === RRule.YEARLY) {\n if (empty(options.bymonth)) {\n ranges = [[0, yearlen]];\n }\n else {\n for (var j = 0; j < options.bymonth.length; j++) {\n month = options.bymonth[j];\n ranges.push(mrange.slice(month - 1, month + 1));\n }\n }\n }\n else if (options.freq === RRule.MONTHLY) {\n ranges = [mrange.slice(month - 1, month + 1)];\n }\n if (empty(ranges)) {\n return result;\n }\n // Weekly frequency won't get here, so we may not\n // care about cross-year weekly periods.\n result.nwdaymask = repeat(0, yearlen);\n for (var j = 0; j < ranges.length; j++) {\n var rang = ranges[j];\n var first = rang[0];\n var last = rang[1] - 1;\n for (var k = 0; k < options.bynweekday.length; k++) {\n var i = void 0;\n var _a = options.bynweekday[k], wday = _a[0], n = _a[1];\n if (n < 0) {\n i = last + (n + 1) * 7;\n i -= pymod(wdaymask[i] - wday, 7);\n }\n else {\n i = first + (n - 1) * 7;\n i += pymod(7 - wdaymask[i] + wday, 7);\n }\n if (first <= i && i <= last)\n result.nwdaymask[i] = 1;\n }\n }\n return result;\n}\n//# sourceMappingURL=monthinfo.js.map","export function easter(y, offset) {\n if (offset === void 0) { offset = 0; }\n var a = y % 19;\n var b = Math.floor(y / 100);\n var c = y % 100;\n var d = Math.floor(b / 4);\n var e = b % 4;\n var f = Math.floor((b + 8) / 25);\n var g = Math.floor((b - f + 1) / 3);\n var h = Math.floor(19 * a + b - d - g + 15) % 30;\n var i = Math.floor(c / 4);\n var k = c % 4;\n var l = Math.floor(32 + 2 * e + 2 * i - h - k) % 7;\n var m = Math.floor((a + 11 * h + 22 * l) / 451);\n var month = Math.floor((h + l - 7 * m + 114) / 31);\n var day = ((h + l - 7 * m + 114) % 31) + 1;\n var date = Date.UTC(y, month - 1, day + offset);\n var yearStart = Date.UTC(y, 0, 1);\n return [Math.ceil((date - yearStart) / (1000 * 60 * 60 * 24))];\n}\n//# sourceMappingURL=easter.js.map","import { combine, fromOrdinal, sort } from '../dateutil';\nimport { pymod, isPresent, includes } from '../helpers';\nexport function buildPoslist(bysetpos, timeset, start, end, ii, dayset) {\n var poslist = [];\n for (var j = 0; j < bysetpos.length; j++) {\n var daypos = void 0;\n var timepos = void 0;\n var pos = bysetpos[j];\n if (pos < 0) {\n daypos = Math.floor(pos / timeset.length);\n timepos = pymod(pos, timeset.length);\n }\n else {\n daypos = Math.floor((pos - 1) / timeset.length);\n timepos = pymod(pos - 1, timeset.length);\n }\n var tmp = [];\n for (var k = start; k < end; k++) {\n var val = dayset[k];\n if (!isPresent(val))\n continue;\n tmp.push(val);\n }\n var i = void 0;\n if (daypos < 0) {\n i = tmp.slice(daypos)[0];\n }\n else {\n i = tmp[daypos];\n }\n var time = timeset[timepos];\n var date = fromOrdinal(ii.yearordinal + i);\n var res = combine(date, time);\n // XXX: can this ever be in the array?\n // - compare the actual date instead?\n if (!includes(poslist, res))\n poslist.push(res);\n }\n sort(poslist);\n return poslist;\n}\n//# sourceMappingURL=poslist.js.map","import { freqIsDailyOrGreater } from '../types';\nimport { combine, fromOrdinal, MAXYEAR } from '../dateutil';\nimport Iterinfo from '../iterinfo/index';\nimport { RRule } from '../rrule';\nimport { buildTimeset } from '../parseoptions';\nimport { notEmpty, includes, isPresent } from '../helpers';\nimport { DateWithZone } from '../datewithzone';\nimport { buildPoslist } from './poslist';\nimport { DateTime } from '../datetime';\nexport function iter(iterResult, options) {\n var dtstart = options.dtstart, freq = options.freq, interval = options.interval, until = options.until, bysetpos = options.bysetpos;\n var count = options.count;\n if (count === 0 || interval === 0) {\n return emitResult(iterResult);\n }\n var counterDate = DateTime.fromDate(dtstart);\n var ii = new Iterinfo(options);\n ii.rebuild(counterDate.year, counterDate.month);\n var timeset = makeTimeset(ii, counterDate, options);\n for (;;) {\n var _a = ii.getdayset(freq)(counterDate.year, counterDate.month, counterDate.day), dayset = _a[0], start = _a[1], end = _a[2];\n var filtered = removeFilteredDays(dayset, start, end, ii, options);\n if (notEmpty(bysetpos)) {\n var poslist = buildPoslist(bysetpos, timeset, start, end, ii, dayset);\n for (var j = 0; j < poslist.length; j++) {\n var res = poslist[j];\n if (until && res > until) {\n return emitResult(iterResult);\n }\n if (res >= dtstart) {\n var rezonedDate = rezoneIfNeeded(res, options);\n if (!iterResult.accept(rezonedDate)) {\n return emitResult(iterResult);\n }\n if (count) {\n --count;\n if (!count) {\n return emitResult(iterResult);\n }\n }\n }\n }\n }\n else {\n for (var j = start; j < end; j++) {\n var currentDay = dayset[j];\n if (!isPresent(currentDay)) {\n continue;\n }\n var date = fromOrdinal(ii.yearordinal + currentDay);\n for (var k = 0; k < timeset.length; k++) {\n var time = timeset[k];\n var res = combine(date, time);\n if (until && res > until) {\n return emitResult(iterResult);\n }\n if (res >= dtstart) {\n var rezonedDate = rezoneIfNeeded(res, options);\n if (!iterResult.accept(rezonedDate)) {\n return emitResult(iterResult);\n }\n if (count) {\n --count;\n if (!count) {\n return emitResult(iterResult);\n }\n }\n }\n }\n }\n }\n if (options.interval === 0) {\n return emitResult(iterResult);\n }\n // Handle frequency and interval\n counterDate.add(options, filtered);\n if (counterDate.year > MAXYEAR) {\n return emitResult(iterResult);\n }\n if (!freqIsDailyOrGreater(freq)) {\n timeset = ii.gettimeset(freq)(counterDate.hour, counterDate.minute, counterDate.second, 0);\n }\n ii.rebuild(counterDate.year, counterDate.month);\n }\n}\nfunction isFiltered(ii, currentDay, options) {\n var bymonth = options.bymonth, byweekno = options.byweekno, byweekday = options.byweekday, byeaster = options.byeaster, bymonthday = options.bymonthday, bynmonthday = options.bynmonthday, byyearday = options.byyearday;\n return ((notEmpty(bymonth) && !includes(bymonth, ii.mmask[currentDay])) ||\n (notEmpty(byweekno) && !ii.wnomask[currentDay]) ||\n (notEmpty(byweekday) && !includes(byweekday, ii.wdaymask[currentDay])) ||\n (notEmpty(ii.nwdaymask) && !ii.nwdaymask[currentDay]) ||\n (byeaster !== null && !includes(ii.eastermask, currentDay)) ||\n ((notEmpty(bymonthday) || notEmpty(bynmonthday)) &&\n !includes(bymonthday, ii.mdaymask[currentDay]) &&\n !includes(bynmonthday, ii.nmdaymask[currentDay])) ||\n (notEmpty(byyearday) &&\n ((currentDay < ii.yearlen &&\n !includes(byyearday, currentDay + 1) &&\n !includes(byyearday, -ii.yearlen + currentDay)) ||\n (currentDay >= ii.yearlen &&\n !includes(byyearday, currentDay + 1 - ii.yearlen) &&\n !includes(byyearday, -ii.nextyearlen + currentDay - ii.yearlen)))));\n}\nfunction rezoneIfNeeded(date, options) {\n return new DateWithZone(date, options.tzid).rezonedDate();\n}\nfunction emitResult(iterResult) {\n return iterResult.getValue();\n}\nfunction removeFilteredDays(dayset, start, end, ii, options) {\n var filtered = false;\n for (var dayCounter = start; dayCounter < end; dayCounter++) {\n var currentDay = dayset[dayCounter];\n filtered = isFiltered(ii, currentDay, options);\n if (filtered)\n dayset[currentDay] = null;\n }\n return filtered;\n}\nfunction makeTimeset(ii, counterDate, options) {\n var freq = options.freq, byhour = options.byhour, byminute = options.byminute, bysecond = options.bysecond;\n if (freqIsDailyOrGreater(freq)) {\n return buildTimeset(options);\n }\n if ((freq >= RRule.HOURLY &&\n notEmpty(byhour) &&\n !includes(byhour, counterDate.hour)) ||\n (freq >= RRule.MINUTELY &&\n notEmpty(byminute) &&\n !includes(byminute, counterDate.minute)) ||\n (freq >= RRule.SECONDLY &&\n notEmpty(bysecond) &&\n !includes(bysecond, counterDate.second))) {\n return [];\n }\n return ii.gettimeset(freq)(counterDate.hour, counterDate.minute, counterDate.second, counterDate.millisecond);\n}\n//# sourceMappingURL=index.js.map","import { isValidDate } from './dateutil';\nimport IterResult from './iterresult';\nimport CallbackIterResult from './callbackiterresult';\nimport { fromText, parseText, toText, isFullyConvertible } from './nlp/index';\nimport { Frequency, } from './types';\nimport { parseOptions, initializeOptions } from './parseoptions';\nimport { parseString } from './parsestring';\nimport { optionsToString } from './optionstostring';\nimport { Cache } from './cache';\nimport { Weekday } from './weekday';\nimport { iter } from './iter/index';\n// =============================================================================\n// RRule\n// =============================================================================\nexport var Days = {\n MO: new Weekday(0),\n TU: new Weekday(1),\n WE: new Weekday(2),\n TH: new Weekday(3),\n FR: new Weekday(4),\n SA: new Weekday(5),\n SU: new Weekday(6),\n};\nexport var DEFAULT_OPTIONS = {\n freq: Frequency.YEARLY,\n dtstart: null,\n interval: 1,\n wkst: Days.MO,\n count: null,\n until: null,\n tzid: null,\n bysetpos: null,\n bymonth: null,\n bymonthday: null,\n bynmonthday: null,\n byyearday: null,\n byweekno: null,\n byweekday: null,\n bynweekday: null,\n byhour: null,\n byminute: null,\n bysecond: null,\n byeaster: null,\n};\nexport var defaultKeys = Object.keys(DEFAULT_OPTIONS);\n/**\n *\n * @param {Options?} options - see \n * - The only required option is `freq`, one of RRule.YEARLY, RRule.MONTHLY, ...\n * @constructor\n */\nvar RRule = /** @class */ (function () {\n function RRule(options, noCache) {\n if (options === void 0) { options = {}; }\n if (noCache === void 0) { noCache = false; }\n // RFC string\n this._cache = noCache ? null : new Cache();\n // used by toString()\n this.origOptions = initializeOptions(options);\n var parsedOptions = parseOptions(options).parsedOptions;\n this.options = parsedOptions;\n }\n RRule.parseText = function (text, language) {\n return parseText(text, language);\n };\n RRule.fromText = function (text, language) {\n return fromText(text, language);\n };\n RRule.fromString = function (str) {\n return new RRule(RRule.parseString(str) || undefined);\n };\n RRule.prototype._iter = function (iterResult) {\n return iter(iterResult, this.options);\n };\n RRule.prototype._cacheGet = function (what, args) {\n if (!this._cache)\n return false;\n return this._cache._cacheGet(what, args);\n };\n RRule.prototype._cacheAdd = function (what, value, args) {\n if (!this._cache)\n return;\n return this._cache._cacheAdd(what, value, args);\n };\n /**\n * @param {Function} iterator - optional function that will be called\n * on each date that is added. It can return false\n * to stop the iteration.\n * @return Array containing all recurrences.\n */\n RRule.prototype.all = function (iterator) {\n if (iterator) {\n return this._iter(new CallbackIterResult('all', {}, iterator));\n }\n var result = this._cacheGet('all');\n if (result === false) {\n result = this._iter(new IterResult('all', {}));\n this._cacheAdd('all', result);\n }\n return result;\n };\n /**\n * Returns all the occurrences of the rrule between after and before.\n * The inc keyword defines what happens if after and/or before are\n * themselves occurrences. With inc == True, they will be included in the\n * list, if they are found in the recurrence set.\n *\n * @return Array\n */\n RRule.prototype.between = function (after, before, inc, iterator) {\n if (inc === void 0) { inc = false; }\n if (!isValidDate(after) || !isValidDate(before)) {\n throw new Error('Invalid date passed in to RRule.between');\n }\n var args = {\n before: before,\n after: after,\n inc: inc,\n };\n if (iterator) {\n return this._iter(new CallbackIterResult('between', args, iterator));\n }\n var result = this._cacheGet('between', args);\n if (result === false) {\n result = this._iter(new IterResult('between', args));\n this._cacheAdd('between', result, args);\n }\n return result;\n };\n /**\n * Returns the last recurrence before the given datetime instance.\n * The inc keyword defines what happens if dt is an occurrence.\n * With inc == True, if dt itself is an occurrence, it will be returned.\n *\n * @return Date or null\n */\n RRule.prototype.before = function (dt, inc) {\n if (inc === void 0) { inc = false; }\n if (!isValidDate(dt)) {\n throw new Error('Invalid date passed in to RRule.before');\n }\n var args = { dt: dt, inc: inc };\n var result = this._cacheGet('before', args);\n if (result === false) {\n result = this._iter(new IterResult('before', args));\n this._cacheAdd('before', result, args);\n }\n return result;\n };\n /**\n * Returns the first recurrence after the given datetime instance.\n * The inc keyword defines what happens if dt is an occurrence.\n * With inc == True, if dt itself is an occurrence, it will be returned.\n *\n * @return Date or null\n */\n RRule.prototype.after = function (dt, inc) {\n if (inc === void 0) { inc = false; }\n if (!isValidDate(dt)) {\n throw new Error('Invalid date passed in to RRule.after');\n }\n var args = { dt: dt, inc: inc };\n var result = this._cacheGet('after', args);\n if (result === false) {\n result = this._iter(new IterResult('after', args));\n this._cacheAdd('after', result, args);\n }\n return result;\n };\n /**\n * Returns the number of recurrences in this set. It will have go trough\n * the whole recurrence, if this hasn't been done before.\n */\n RRule.prototype.count = function () {\n return this.all().length;\n };\n /**\n * Converts the rrule into its string representation\n *\n * @see \n * @return String\n */\n RRule.prototype.toString = function () {\n return optionsToString(this.origOptions);\n };\n /**\n * Will convert all rules described in nlp:ToText\n * to text.\n */\n RRule.prototype.toText = function (gettext, language, dateFormatter) {\n return toText(this, gettext, language, dateFormatter);\n };\n RRule.prototype.isFullyConvertibleToText = function () {\n return isFullyConvertible(this);\n };\n /**\n * @return a RRule instance with the same freq and options\n * as this one (cache is not cloned)\n */\n RRule.prototype.clone = function () {\n return new RRule(this.origOptions);\n };\n // RRule class 'constants'\n RRule.FREQUENCIES = [\n 'YEARLY',\n 'MONTHLY',\n 'WEEKLY',\n 'DAILY',\n 'HOURLY',\n 'MINUTELY',\n 'SECONDLY',\n ];\n RRule.YEARLY = Frequency.YEARLY;\n RRule.MONTHLY = Frequency.MONTHLY;\n RRule.WEEKLY = Frequency.WEEKLY;\n RRule.DAILY = Frequency.DAILY;\n RRule.HOURLY = Frequency.HOURLY;\n RRule.MINUTELY = Frequency.MINUTELY;\n RRule.SECONDLY = Frequency.SECONDLY;\n RRule.MO = Days.MO;\n RRule.TU = Days.TU;\n RRule.WE = Days.WE;\n RRule.TH = Days.TH;\n RRule.FR = Days.FR;\n RRule.SA = Days.SA;\n RRule.SU = Days.SU;\n RRule.parseString = parseString;\n RRule.optionsToString = optionsToString;\n return RRule;\n}());\nexport { RRule };\n//# sourceMappingURL=rrule.js.map","import { __assign } from \"tslib\";\nimport { RRule } from './rrule';\nimport { RRuleSet } from './rruleset';\nimport { untilStringToDate } from './dateutil';\nimport { includes, split } from './helpers';\nimport { parseString, parseDtstart } from './parsestring';\n/**\n * RRuleStr\n * To parse a set of rrule strings\n */\nvar DEFAULT_OPTIONS = {\n dtstart: null,\n cache: false,\n unfold: false,\n forceset: false,\n compatible: false,\n tzid: null,\n};\nexport function parseInput(s, options) {\n var rrulevals = [];\n var rdatevals = [];\n var exrulevals = [];\n var exdatevals = [];\n var parsedDtstart = parseDtstart(s);\n var dtstart = parsedDtstart.dtstart;\n var tzid = parsedDtstart.tzid;\n var lines = splitIntoLines(s, options.unfold);\n lines.forEach(function (line) {\n var _a;\n if (!line)\n return;\n var _b = breakDownLine(line), name = _b.name, parms = _b.parms, value = _b.value;\n switch (name.toUpperCase()) {\n case 'RRULE':\n if (parms.length) {\n throw new Error(\"unsupported RRULE parm: \".concat(parms.join(',')));\n }\n rrulevals.push(parseString(line));\n break;\n case 'RDATE':\n var _c = (_a = /RDATE(?:;TZID=([^:=]+))?/i.exec(line)) !== null && _a !== void 0 ? _a : [], rdateTzid = _c[1];\n if (rdateTzid && !tzid) {\n tzid = rdateTzid;\n }\n rdatevals = rdatevals.concat(parseRDate(value, parms));\n break;\n case 'EXRULE':\n if (parms.length) {\n throw new Error(\"unsupported EXRULE parm: \".concat(parms.join(',')));\n }\n exrulevals.push(parseString(value));\n break;\n case 'EXDATE':\n exdatevals = exdatevals.concat(parseRDate(value, parms));\n break;\n case 'DTSTART':\n break;\n default:\n throw new Error('unsupported property: ' + name);\n }\n });\n return {\n dtstart: dtstart,\n tzid: tzid,\n rrulevals: rrulevals,\n rdatevals: rdatevals,\n exrulevals: exrulevals,\n exdatevals: exdatevals,\n };\n}\nfunction buildRule(s, options) {\n var _a = parseInput(s, options), rrulevals = _a.rrulevals, rdatevals = _a.rdatevals, exrulevals = _a.exrulevals, exdatevals = _a.exdatevals, dtstart = _a.dtstart, tzid = _a.tzid;\n var noCache = options.cache === false;\n if (options.compatible) {\n options.forceset = true;\n options.unfold = true;\n }\n if (options.forceset ||\n rrulevals.length > 1 ||\n rdatevals.length ||\n exrulevals.length ||\n exdatevals.length) {\n var rset_1 = new RRuleSet(noCache);\n rset_1.dtstart(dtstart);\n rset_1.tzid(tzid || undefined);\n rrulevals.forEach(function (val) {\n rset_1.rrule(new RRule(groomRruleOptions(val, dtstart, tzid), noCache));\n });\n rdatevals.forEach(function (date) {\n rset_1.rdate(date);\n });\n exrulevals.forEach(function (val) {\n rset_1.exrule(new RRule(groomRruleOptions(val, dtstart, tzid), noCache));\n });\n exdatevals.forEach(function (date) {\n rset_1.exdate(date);\n });\n if (options.compatible && options.dtstart)\n rset_1.rdate(dtstart);\n return rset_1;\n }\n var val = rrulevals[0] || {};\n return new RRule(groomRruleOptions(val, val.dtstart || options.dtstart || dtstart, val.tzid || options.tzid || tzid), noCache);\n}\nexport function rrulestr(s, options) {\n if (options === void 0) { options = {}; }\n return buildRule(s, initializeOptions(options));\n}\nfunction groomRruleOptions(val, dtstart, tzid) {\n return __assign(__assign({}, val), { dtstart: dtstart, tzid: tzid });\n}\nfunction initializeOptions(options) {\n var invalid = [];\n var keys = Object.keys(options);\n var defaultKeys = Object.keys(DEFAULT_OPTIONS);\n keys.forEach(function (key) {\n if (!includes(defaultKeys, key))\n invalid.push(key);\n });\n if (invalid.length) {\n throw new Error('Invalid options: ' + invalid.join(', '));\n }\n return __assign(__assign({}, DEFAULT_OPTIONS), options);\n}\nfunction extractName(line) {\n if (line.indexOf(':') === -1) {\n return {\n name: 'RRULE',\n value: line,\n };\n }\n var _a = split(line, ':', 1), name = _a[0], value = _a[1];\n return {\n name: name,\n value: value,\n };\n}\nfunction breakDownLine(line) {\n var _a = extractName(line), name = _a.name, value = _a.value;\n var parms = name.split(';');\n if (!parms)\n throw new Error('empty property name');\n return {\n name: parms[0].toUpperCase(),\n parms: parms.slice(1),\n value: value,\n };\n}\nfunction splitIntoLines(s, unfold) {\n if (unfold === void 0) { unfold = false; }\n s = s && s.trim();\n if (!s)\n throw new Error('Invalid empty string');\n // More info about 'unfold' option\n // Go head to http://www.ietf.org/rfc/rfc2445.txt\n if (!unfold) {\n return s.split(/\\s/);\n }\n var lines = s.split('\\n');\n var i = 0;\n while (i < lines.length) {\n // TODO\n var line = (lines[i] = lines[i].replace(/\\s+$/g, ''));\n if (!line) {\n lines.splice(i, 1);\n }\n else if (i > 0 && line[0] === ' ') {\n lines[i - 1] += line.slice(1);\n lines.splice(i, 1);\n }\n else {\n i += 1;\n }\n }\n return lines;\n}\nfunction validateDateParm(parms) {\n parms.forEach(function (parm) {\n if (!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(parm)) {\n throw new Error('unsupported RDATE/EXDATE parm: ' + parm);\n }\n });\n}\nfunction parseRDate(rdateval, parms) {\n validateDateParm(parms);\n return rdateval.split(',').map(function (datestr) { return untilStringToDate(datestr); });\n}\n//# sourceMappingURL=rrulestr.js.map","import { __extends } from \"tslib\";\nimport { RRule } from './rrule';\nimport { sort, timeToUntilString } from './dateutil';\nimport { includes } from './helpers';\nimport { iterSet } from './iterset';\nimport { rrulestr } from './rrulestr';\nimport { optionsToString } from './optionstostring';\nfunction createGetterSetter(fieldName) {\n var _this = this;\n return function (field) {\n if (field !== undefined) {\n _this[\"_\".concat(fieldName)] = field;\n }\n if (_this[\"_\".concat(fieldName)] !== undefined) {\n return _this[\"_\".concat(fieldName)];\n }\n for (var i = 0; i < _this._rrule.length; i++) {\n var field_1 = _this._rrule[i].origOptions[fieldName];\n if (field_1) {\n return field_1;\n }\n }\n };\n}\nvar RRuleSet = /** @class */ (function (_super) {\n __extends(RRuleSet, _super);\n /**\n *\n * @param {Boolean?} noCache\n * The same stratagy as RRule on cache, default to false\n * @constructor\n */\n function RRuleSet(noCache) {\n if (noCache === void 0) { noCache = false; }\n var _this = _super.call(this, {}, noCache) || this;\n _this.dtstart = createGetterSetter.apply(_this, ['dtstart']);\n _this.tzid = createGetterSetter.apply(_this, ['tzid']);\n _this._rrule = [];\n _this._rdate = [];\n _this._exrule = [];\n _this._exdate = [];\n return _this;\n }\n RRuleSet.prototype._iter = function (iterResult) {\n return iterSet(iterResult, this._rrule, this._exrule, this._rdate, this._exdate, this.tzid());\n };\n /**\n * Adds an RRule to the set\n *\n * @param {RRule}\n */\n RRuleSet.prototype.rrule = function (rrule) {\n _addRule(rrule, this._rrule);\n };\n /**\n * Adds an EXRULE to the set\n *\n * @param {RRule}\n */\n RRuleSet.prototype.exrule = function (rrule) {\n _addRule(rrule, this._exrule);\n };\n /**\n * Adds an RDate to the set\n *\n * @param {Date}\n */\n RRuleSet.prototype.rdate = function (date) {\n _addDate(date, this._rdate);\n };\n /**\n * Adds an EXDATE to the set\n *\n * @param {Date}\n */\n RRuleSet.prototype.exdate = function (date) {\n _addDate(date, this._exdate);\n };\n /**\n * Get list of included rrules in this recurrence set.\n *\n * @return List of rrules\n */\n RRuleSet.prototype.rrules = function () {\n return this._rrule.map(function (e) { return rrulestr(e.toString()); });\n };\n /**\n * Get list of excluded rrules in this recurrence set.\n *\n * @return List of exrules\n */\n RRuleSet.prototype.exrules = function () {\n return this._exrule.map(function (e) { return rrulestr(e.toString()); });\n };\n /**\n * Get list of included datetimes in this recurrence set.\n *\n * @return List of rdates\n */\n RRuleSet.prototype.rdates = function () {\n return this._rdate.map(function (e) { return new Date(e.getTime()); });\n };\n /**\n * Get list of included datetimes in this recurrence set.\n *\n * @return List of exdates\n */\n RRuleSet.prototype.exdates = function () {\n return this._exdate.map(function (e) { return new Date(e.getTime()); });\n };\n RRuleSet.prototype.valueOf = function () {\n var result = [];\n if (!this._rrule.length && this._dtstart) {\n result = result.concat(optionsToString({ dtstart: this._dtstart }));\n }\n this._rrule.forEach(function (rrule) {\n result = result.concat(rrule.toString().split('\\n'));\n });\n this._exrule.forEach(function (exrule) {\n result = result.concat(exrule\n .toString()\n .split('\\n')\n .map(function (line) { return line.replace(/^RRULE:/, 'EXRULE:'); })\n .filter(function (line) { return !/^DTSTART/.test(line); }));\n });\n if (this._rdate.length) {\n result.push(rdatesToString('RDATE', this._rdate, this.tzid()));\n }\n if (this._exdate.length) {\n result.push(rdatesToString('EXDATE', this._exdate, this.tzid()));\n }\n return result;\n };\n /**\n * to generate recurrence field such as:\n * DTSTART:19970902T010000Z\n * RRULE:FREQ=YEARLY;COUNT=2;BYDAY=TU\n * RRULE:FREQ=YEARLY;COUNT=1;BYDAY=TH\n */\n RRuleSet.prototype.toString = function () {\n return this.valueOf().join('\\n');\n };\n /**\n * Create a new RRuleSet Object completely base on current instance\n */\n RRuleSet.prototype.clone = function () {\n var rrs = new RRuleSet(!!this._cache);\n this._rrule.forEach(function (rule) { return rrs.rrule(rule.clone()); });\n this._exrule.forEach(function (rule) { return rrs.exrule(rule.clone()); });\n this._rdate.forEach(function (date) { return rrs.rdate(new Date(date.getTime())); });\n this._exdate.forEach(function (date) { return rrs.exdate(new Date(date.getTime())); });\n return rrs;\n };\n return RRuleSet;\n}(RRule));\nexport { RRuleSet };\nfunction _addRule(rrule, collection) {\n if (!(rrule instanceof RRule)) {\n throw new TypeError(String(rrule) + ' is not RRule instance');\n }\n if (!includes(collection.map(String), String(rrule))) {\n collection.push(rrule);\n }\n}\nfunction _addDate(date, collection) {\n if (!(date instanceof Date)) {\n throw new TypeError(String(date) + ' is not Date instance');\n }\n if (!includes(collection.map(Number), Number(date))) {\n collection.push(date);\n sort(collection);\n }\n}\nfunction rdatesToString(param, rdates, tzid) {\n var isUTC = !tzid || tzid.toUpperCase() === 'UTC';\n var header = isUTC ? \"\".concat(param, \":\") : \"\".concat(param, \";TZID=\").concat(tzid, \":\");\n var dateString = rdates\n .map(function (rdate) { return timeToUntilString(rdate.valueOf(), isUTC); })\n .join(',');\n return \"\".concat(header).concat(dateString);\n}\n//# sourceMappingURL=rruleset.js.map","import { DateWithZone } from './datewithzone';\nimport { iter } from './iter';\nimport { sort } from './dateutil';\nexport function iterSet(iterResult, _rrule, _exrule, _rdate, _exdate, tzid) {\n var _exdateHash = {};\n var _accept = iterResult.accept;\n function evalExdate(after, before) {\n _exrule.forEach(function (rrule) {\n rrule.between(after, before, true).forEach(function (date) {\n _exdateHash[Number(date)] = true;\n });\n });\n }\n _exdate.forEach(function (date) {\n var zonedDate = new DateWithZone(date, tzid).rezonedDate();\n _exdateHash[Number(zonedDate)] = true;\n });\n iterResult.accept = function (date) {\n var dt = Number(date);\n if (isNaN(dt))\n return _accept.call(this, date);\n if (!_exdateHash[dt]) {\n evalExdate(new Date(dt - 1), new Date(dt + 1));\n if (!_exdateHash[dt]) {\n _exdateHash[dt] = true;\n return _accept.call(this, date);\n }\n }\n return true;\n };\n if (iterResult.method === 'between') {\n evalExdate(iterResult.args.after, iterResult.args.before);\n iterResult.accept = function (date) {\n var dt = Number(date);\n if (!_exdateHash[dt]) {\n _exdateHash[dt] = true;\n return _accept.call(this, date);\n }\n return true;\n };\n }\n for (var i = 0; i < _rdate.length; i++) {\n var zonedDate = new DateWithZone(_rdate[i], tzid).rezonedDate();\n if (!iterResult.accept(new Date(zonedDate.getTime())))\n break;\n }\n _rrule.forEach(function (rrule) {\n iter(iterResult, rrule.options);\n });\n var res = iterResult._result;\n sort(res);\n switch (iterResult.method) {\n case 'all':\n case 'between':\n return res;\n case 'before':\n return ((res.length && res[res.length - 1]) || null);\n case 'after':\n default:\n return ((res.length && res[0]) || null);\n }\n}\n//# sourceMappingURL=iterset.js.map","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"event-module--wrapper--30c5b\",\"title\":\"event-module--title--e2531\",\"icon\":\"event-module--icon--7dee1\",\"content\":\"event-module--content--27b44\"};","import { InlineSVG, Text, Title, Trans } from '../components';\nimport {\n useFormatDate,\n useFormatTime,\n useLocale,\n useTranslate,\n} from '../hooks';\n\nimport styles from './event.module.scss';\n\ntype Props = {\n event: Queries.Squidex_Events;\n pageEvents: Queries.Squidex_PageEvents | undefined;\n};\n\nconst isSameDate = (dateA: Date, dateB: Date) =>\n dateA.getUTCFullYear() === dateB.getUTCFullYear() &&\n dateA.getUTCMonth() === dateB.getUTCMonth() &&\n dateA.getUTCDate() === dateB.getUTCDate();\n\nexport const Event = ({ event, pageEvents }: Props) => {\n const { locale } = useLocale();\n const translate = useTranslate();\n\n const startDate = new Date(event.flatData.startDate);\n const endDate = new Date(event.flatData.endDate);\n\n const labelAt = translate(pageEvents?.data.at);\n const labelOn = translate(pageEvents?.data.on);\n const labelFrom = translate(pageEvents?.data.from);\n const labelTo = translate(pageEvents?.data.to);\n const suffix = translate(pageEvents?.data.suffix);\n\n const formattedStartDateOn = useFormatDate({\n date: startDate,\n locale,\n prefix: labelOn,\n });\n const formattedStartDateFrom = useFormatDate({\n date: startDate,\n locale,\n prefix: labelFrom,\n });\n const formattedStartTimeAt = useFormatTime({\n date: startDate,\n locale,\n prefix: labelAt,\n suffix,\n });\n const formattedStartTimeFrom = useFormatTime({\n date: startDate,\n locale,\n prefix: labelFrom,\n });\n\n const formattedEndDateTo = useFormatDate({\n date: endDate,\n locale,\n prefix: labelTo,\n });\n const formattedEndTimeTo = useFormatTime({\n date: endDate,\n locale,\n prefix: labelTo,\n suffix,\n });\n const formattedEndTimeAt = useFormatTime({\n date: endDate,\n locale,\n prefix: labelAt,\n suffix,\n });\n\n const makeSubline = () => {\n // 1) single date (start only)\n if (endDate.getTime() === 0) {\n // utc hours == 0 --> assumed as unset in CMS\n if (startDate.getUTCHours() === 0) {\n return formattedStartDateOn;\n }\n\n return `${formattedStartDateOn} ${formattedStartTimeAt}`;\n }\n\n // 2) start and end date\n\n // 2a) date only\n if (startDate.getUTCHours() === 0) {\n return `${formattedStartDateFrom} ${formattedEndDateTo}`;\n }\n\n // 2b) date on same day\n if (isSameDate(startDate, endDate)) {\n return `${formattedStartDateOn} ${formattedStartTimeFrom} ${formattedEndTimeTo}`;\n }\n\n // 2c) date on different days\n return `${formattedStartDateFrom} ${formattedStartTimeAt} ${formattedEndDateTo} ${formattedEndTimeAt}`;\n };\n\n return (\n
\n \n
\n \n <Trans data={event.data.title} />\n \n {makeSubline()}\n
\n
\n );\n};\n","import { graphql } from 'gatsby';\nimport { RRule } from 'rrule';\n\n\nimport { Accordion, Markdown, Trans } from '../components';\nimport { useTranslate } from '../hooks';\n\nimport { Event } from './event';\n\ntype Props = {\n events: Queries.Maybe;\n pageEvents: Queries.Squidex_PageEvents | undefined;\n\n maxPreviewInMonths?: number;\n maxEvents?: number;\n};\n\nconst WEEKDAYS: Record = {\n MO: 0,\n TU: 1,\n WE: 2,\n TH: 3,\n FR: 4,\n SA: 5,\n SU: 6,\n};\n\nconst filterRecurringEvents = (events: Props['events']): Props['events'] =>\n events?.filter((event) => event.flatData.repeatable) || null;\nconst filterDefaultEvents = (events: Props['events']): Props['events'] =>\n events?.filter((event) => !event.flatData.repeatable) || null;\n\nconst sliceEvents = (\n events: Props['events'],\n from: Date,\n to: Date,\n): Props['events'] => {\n const startOfDay = new Date(from);\n const toEndOfDay = new Date(to);\n\n startOfDay.setUTCHours(0, 0, 0, 0);\n toEndOfDay.setUTCHours(23, 59, 59, 999);\n\n return (\n events?.filter((event) => {\n const start = new Date(event.flatData.startDate);\n\n return (\n start.getTime() >= startOfDay.getTime() &&\n start.getTime() <= toEndOfDay.getTime()\n );\n }) || null\n );\n};\n\nconst sortEvents = (events: Props['events']): Props['events'] =>\n [...(events || [])].sort((eventA, eventB) => {\n const startA = new Date(eventA?.flatData.startDate);\n const startB = new Date(eventB?.flatData.startDate);\n\n return startA.getTime() - startB.getTime();\n });\n\nconst generateRecurringEvents = (\n event: Queries.Squidex_Events,\n): Queries.Squidex_Events[] => {\n const repeatableWeekdays = event.flatData.repeatableWeekdays?.map(\n (weekday) => WEEKDAYS[weekday],\n );\n const repeatableInterval = event.flatData.repeatableInterval || 1;\n const repeatableUntil = new Date(event.flatData.repeatableUntil);\n const startDate = new Date(event.flatData.startDate);\n const endDate = new Date(event.flatData.endDate || event.flatData.startDate);\n\n const delta = endDate.getTime() - startDate.getTime();\n\n const rule = new RRule({\n byweekday: repeatableWeekdays,\n interval: repeatableInterval,\n until: repeatableUntil,\n dtstart: startDate,\n freq: RRule.WEEKLY,\n });\n\n return rule.all().map((newStartDate) => {\n const newEndDate = new Date(newStartDate);\n newEndDate.setTime(newEndDate.getTime() + delta);\n\n return {\n ...event,\n flatData: {\n ...event.flatData,\n startDate: newStartDate.toISOString(),\n endDate: delta >= 0 ? newEndDate.toISOString() : endDate.toISOString(),\n },\n };\n });\n};\n\nexport const Events = ({\n events,\n pageEvents,\n maxEvents,\n maxPreviewInMonths = 6,\n}: Props) => {\n const translate = useTranslate();\n\n const recurringEvents = (filterRecurringEvents(events) || []).flatMap(\n generateRecurringEvents,\n );\n const defaultEvents = sortEvents(filterDefaultEvents(events)) || [];\n\n const lastDefaultEventDate = new Date(\n defaultEvents[defaultEvents.length - 1].flatData.startDate,\n );\n const lastMaxPreviewEventDate = new Date();\n lastMaxPreviewEventDate.setMonth(\n lastMaxPreviewEventDate.getMonth() + maxPreviewInMonths,\n );\n const maxDate = new Date(\n Math.max(\n ...[lastDefaultEventDate, lastMaxPreviewEventDate].map((date) =>\n date.getTime(),\n ),\n ),\n );\n\n const slicedEvents = sortEvents([\n ...(sliceEvents(\n [...defaultEvents, ...recurringEvents],\n new Date(),\n maxDate,\n ) || []),\n ]);\n\n const allEvents = (slicedEvents || []).slice(0, maxEvents);\n\n return allEvents.length > 0 ? (\n \n {allEvents.map((event) => (\n }\n >\n \n \n ))}\n \n ) : (\n
\n \n
\n );\n};\n\nexport const query = graphql`\n fragment Events on Squidex {\n queryEventsContents {\n id\n data {\n title {\n de\n en\n }\n content {\n de\n en\n }\n }\n flatData {\n category {\n flatData {\n icon {\n localFile {\n svg {\n content\n }\n }\n ...SquidexAssetLocalFileProps\n }\n }\n }\n startDate\n endDate\n repeatable\n repeatableUntil\n repeatableWeekdays\n repeatableInterval\n }\n }\n }\n\n fragment PageEvents on Squidex {\n queryPageEventsContents {\n data {\n title {\n de\n en\n }\n content {\n de\n en\n }\n allEvents {\n de\n en\n }\n noEventsMessage {\n de\n en\n }\n on {\n de\n en\n }\n at {\n de\n en\n }\n from {\n de\n en\n }\n to {\n de\n en\n }\n suffix {\n de\n en\n }\n }\n flatData {\n backgroundImage {\n localFile {\n childImageSharp {\n gatsbyImageData(\n width: 2560\n height: 1024\n layout: CONSTRAINED\n transformOptions: { cropFocus: ATTENTION }\n )\n }\n }\n ...SquidexAssetLocalFileProps\n }\n }\n }\n }\n`;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"facilities-module--wrapper--85f25\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"facility-module--wrapper--8d993\",\"opened\":\"facility-module--opened--6dabe\",\"closed\":\"facility-module--closed--a8330\",\"icon\":\"facility-module--icon--5d85a\",\"text\":\"facility-module--text--efbe4\"};","import { InlineSVG, SROnly, Text, Trans } from '../components';\nimport { useClassName, useLiveStatus, useTranslate } from '../hooks';\n\nimport styles from './facility.module.scss';\n\nexport type Props = {\n facility: Queries.Squidex_Facilities;\n statusVisible?: boolean;\n};\n\nexport const Facility = ({ facility, statusVisible }: Props) => {\n const translate = useTranslate();\n const liveStatus = useLiveStatus();\n\n const wrapperClassName = useClassName([\n styles.wrapper,\n facility.flatData.status ? styles.opened : styles.closed,\n ]);\n\n const label = translate(\n facility.flatData.status\n ? liveStatus?.data.facilitiesOpened\n : liveStatus?.data.facilitiesClosed,\n );\n\n return (\n
\n \n \n \n \n {statusVisible ? (\n \n {label}\n \n ) : (\n {label}\n )}\n
\n );\n};\n","import { useLiveStatus, useTranslate } from '../hooks';\n\nimport styles from './facilities.module.scss';\nimport { Facility } from './facility';\n\n\ntype Props = {\n facilities: readonly Queries.Squidex_Facilities[];\n statusVisible?: boolean;\n};\n\nexport const Facilities = ({ facilities, statusVisible }: Props) => {\n const translate = useTranslate();\n const liveStatus = useLiveStatus();\n\n return facilities.length > 0 ? (\n \n {facilities?.map((facility) => (\n \n ))}\n
\n ) : null;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"fullscreen\":\"page-content-module--fullscreen--d1657\",\"dark\":\"page-content-module--dark--e21df\",\"primary\":\"page-content-module--primary--1f6fd\"};","import type { ComponentProps, ReactNode } from 'react';\n\nimport { Container, Section } from '../components';\nimport { useClassName } from '../hooks';\n\nimport styles from './page-content.module.scss';\n\ntype Props = {\n children: ReactNode;\n theme?: 'light' | 'dark' | 'primary';\n layout?: 'default' | 'fullscreen';\n} & Pick<\n ComponentProps,\n 'size' | 'paddingTop' | 'paddingBottom'\n>;\n\nexport const PageContent = ({\n children,\n size = `lg`,\n theme = `light`,\n layout = `default`,\n ...sectionProps\n}: Props) => {\n const wrapperClassName = useClassName([\n styles.wrapper,\n styles[theme],\n styles[layout],\n ]);\n\n switch (layout) {\n case `fullscreen`:\n return (\n
\n {children}\n
\n );\n\n default:\n return (\n
\n {children}\n
\n );\n }\n};\n","import { GatsbyImage } from 'gatsby-plugin-image';\nimport type { ComponentProps } from 'react';\n\nimport { stringify } from '../utils';\n\ntype Props = {\n alt: string | null | undefined;\n image: Queries.Maybe | undefined;\n} & Omit, 'image' | 'alt'>;\n\nexport const Image = ({ alt, image, ...props }: Props) => {\n const data = image?.localFile?.childImageSharp?.gatsbyImageData;\n\n return data ? (\n \n ) : null;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"page-header-module--wrapper--66ab1\",\"bg-image\":\"page-header-module--bg-image--5bcaf\",\"bgImage\":\"page-header-module--bg-image--5bcaf\",\"bg-color\":\"page-header-module--bg-color--5a5d2\",\"bgColor\":\"page-header-module--bg-color--5a5d2\",\"content\":\"page-header-module--content--6dab6\",\"image\":\"page-header-module--image--d030c\",\"title\":\"page-header-module--title--9b959\"};","import { useId } from 'react';\n\nimport { Container, Title, Text, Trans } from '../components';\nimport type { Locale } from '../config';\nimport { useClassName, useTranslate } from '../hooks';\n\nimport { Image } from './image';\nimport styles from './page-header.module.scss';\n\n\ntype Props = {\n image?: Queries.Squidex_Asset;\n title?: Queries.Maybe>> | string;\n subtitle?: Queries.Maybe>> | string;\n};\n\nexport const PageHeader = ({ image, title, subtitle }: Props) => {\n const titleId = useId();\n const translate = useTranslate();\n const wrapperClassName = useClassName([\n styles.wrapper,\n image ? styles.bgImage : styles.bgColor,\n ]);\n\n return (\n
\n
\n \n \n <Trans data={title} />\n \n {subtitle && (\n \n \n \n )}\n \n
\n\n {translate(title)}\n
\n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"iframe-module--wrapper--4f950\",\"iframe\":\"iframe-module--iframe--10134\",\"cookies\":\"iframe-module--cookies--65871\"};","import type { IframeHTMLAttributes } from 'react';\nimport { useEffect, useState } from 'react';\n\nimport { Button, Text, Trans } from '../components';\nimport { useAccessibility, useClassName } from '../hooks';\nimport { isFunction, isObject, stringify } from '../utils';\n\nimport styles from './iframe.module.scss';\n\ntype Props = {\n src: string | null | undefined;\n title: string | null | undefined;\n} & Omit<\n IframeHTMLAttributes,\n 'src' | 'title' | 'aria-label'\n>;\n\ntype API = {\n renew: () => void;\n isReady: () => boolean;\n};\n\nconst Cookiebot: API = {\n renew: () => {\n if (\n `Cookiebot` in window &&\n isObject(window.Cookiebot) &&\n `renew` in window.Cookiebot &&\n isFunction(window.Cookiebot.renew)\n ) {\n window.Cookiebot.renew();\n }\n },\n isReady: () => `Cookiebot` in window,\n};\n\nexport const Iframe = ({ src, title, className = ``, ...props }: Props) => {\n const accessibility = useAccessibility();\n const [isReady, setIsReady] = useState(false);\n const iframeClassName = useClassName([styles.iframe, className]);\n\n useEffect(() => {\n setIsReady(Cookiebot.isReady());\n const handler = () => setIsReady(true);\n\n window.addEventListener(`CookiebotOnLoad`, handler);\n return () => {\n window.removeEventListener(`CookiebotOnLoad`, handler);\n };\n }, []);\n\n return src ? (\n
\n {isReady ? (\n
\n
\n \n \n \n \n
\n
\n ) : null}\n \n
\n ) : null;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"image-gallery-module--wrapper--1d766\",\"item\":\"image-gallery-module--item--8b2f0\"};","import { isArray, stringify } from '../utils';\n\nimport { Image } from './image';\nimport styles from './image-gallery.module.scss';\n\ntype Props = {\n label: string | null | undefined;\n images: Queries.Maybe | undefined;\n};\n\nexport const ImageGallery = ({ images, label }: Props) =>\n isArray(images) && images.length > 0 ? (\n
\n {images?.map((image) => (\n \"\"\n ))}\n
\n ) : null;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"panorama-module--wrapper--f5b0a\",\"controls\":\"panorama-module--controls--7caf9\",\"left\":\"panorama-module--left--f976d\",\"right\":\"panorama-module--right--815e6\",\"button\":\"panorama-module--button--f530f\",\"icon\":\"panorama-module--icon--b3cf2\",\"map\":\"panorama-module--map--c276f\"};","import L from 'leaflet';\nimport { useEffect, useMemo, useRef, useState } from 'react';\n\nimport {\n useAccessibility,\n useButton,\n useClassName,\n useFullscreen,\n useTranslate,\n} from '../hooks';\nimport {\n MinusIcon,\n PlusIcon,\n OpenFullscreenIcon,\n CloseFullscreenIcon,\n} from '../icons';\nimport { isArray } from '../utils';\n\nimport styles from './panorama.module.scss';\n\ntype Props = {\n svg: Queries.Squidex_Asset | undefined;\n className?: string;\n};\n\nexport const Panorama = ({ svg, className }: Props) => {\n const translate = useTranslate();\n const accessibility = useAccessibility();\n\n const wrapperClassName = useClassName([styles.wrapper, className]);\n\n const ref = useRef(null);\n const [map, setMap] = useState(null);\n const [zoomStatus, setZoomStatus] = useState<{\n zoomIn: boolean;\n zoomOut: boolean;\n }>({ zoomIn: false, zoomOut: false });\n const [mapSize, setMapSize] = useState<{\n width: number;\n height: number;\n }>({ width: 0, height: 0 });\n const { isFullscreen, supportsFullscreen, toggleFullscreen } = useFullscreen({\n ref,\n });\n\n const svgURL = svg?.localFile?.publicURL;\n const svgDataUri = svg?.localFile?.svg?.dataURI;\n const { svgWidth, svgHeight } = useMemo(() => {\n const unmatched = { svgWidth: 0, svgHeight: 0, svgAspectRatio: [0, 0] };\n const match = svgDataUri?.match(/viewBox=(?:'|\")([^'\"]+)(?:'|\")/);\n if (!isArray(match)) {\n return unmatched;\n }\n\n const parts = match[1].split(` `);\n if (parts.length !== 4) {\n return unmatched;\n }\n\n const svgWidth = parseFloat(parts[2]);\n if (isNaN(svgWidth)) {\n return unmatched;\n }\n\n const svgHeight = parseFloat(parts[3]);\n if (isNaN(svgHeight)) {\n return unmatched;\n }\n\n return {\n svgWidth,\n svgHeight,\n };\n }, [svgDataUri]);\n\n const zoomInHandler = () => {\n if (!map) {\n return;\n }\n\n const { zoomDelta = 1 } = map.options;\n map.setZoom(map.getZoom() + zoomDelta);\n };\n const zoomOutHandler = () => {\n if (!map) {\n return;\n }\n\n const { zoomDelta = 1 } = map.options;\n map.setZoom(map.getZoom() - zoomDelta);\n };\n\n const fullscreenToggleButton = useButton({\n isPressed: isFullscreen,\n onToggle: toggleFullscreen,\n isDisabled: !supportsFullscreen,\n label: isFullscreen\n ? translate(accessibility?.data.closeFullscreen)\n : translate(accessibility?.data.openFullscreen),\n });\n\n const zoomInButton = useButton({\n onClick: zoomInHandler,\n isDisabled: !zoomStatus.zoomIn,\n label: translate(accessibility?.data.enlarge),\n });\n\n const zoomOutButton = useButton({\n onClick: zoomOutHandler,\n isDisabled: !zoomStatus.zoomOut,\n label: translate(accessibility?.data.shrink),\n });\n\n const controlsLeftClassName = useClassName([styles.controls, styles.left]);\n const controlsRightClassName = useClassName([styles.controls, styles.right]);\n\n useEffect(() => {\n const element = ref.current;\n if (!element) {\n return;\n }\n\n const computeMapSize = () => {\n const { width, height } = element.getBoundingClientRect();\n const aspectRatio = svgWidth / svgHeight;\n\n setMapSize({\n width: height * aspectRatio,\n height: width / aspectRatio,\n });\n };\n\n computeMapSize();\n window.addEventListener(`resize`, computeMapSize);\n return () => {\n window.removeEventListener(`resize`, computeMapSize);\n };\n }, [svgWidth, svgHeight]);\n\n useEffect(() => {\n const element = ref.current;\n if (!element || !svgURL) {\n return;\n }\n\n const pointToLatLng = (x: number, y: number): [number, number] => {\n const zoom = Math.ceil(\n Math.log2(Math.max(mapSize.width, mapSize.height)),\n );\n const { lat, lng } = L.CRS.Simple.pointToLatLng(new L.Point(x, y), zoom);\n\n return [lat, lng];\n };\n const bounds = [pointToLatLng(0, 0), pointToLatLng(svgWidth, svgHeight)];\n\n const map = L.map(element, {\n zoomSnap: 0,\n zoomDelta: 0.25,\n crs: L.CRS.Simple,\n maxBounds: bounds,\n maxBoundsViscosity: 1,\n touchZoom: `center`,\n doubleClickZoom: `center`,\n zoomControl: false,\n scrollWheelZoom: false,\n attributionControl: false,\n });\n\n L.imageOverlay(svgURL, bounds, {\n interactive: false,\n }).addTo(map);\n\n map.fitBounds(bounds);\n map.setMinZoom(map.getZoom());\n map.setMaxZoom(map.getMinZoom() + 5);\n\n setMap(map);\n\n return () => {\n map.off();\n map.remove();\n setMap(null);\n };\n }, [svgURL, mapSize]);\n\n useEffect(() => {\n if (!map) {\n return;\n }\n\n const computeZoomStatus = () => {\n const zoom = map?.getZoom();\n const minZoom = map?.getMinZoom();\n const maxZoom = map?.getMaxZoom();\n\n setZoomStatus({ zoomIn: zoom < maxZoom, zoomOut: zoom > minZoom });\n };\n\n const enableMouseWheel = () => {\n map.scrollWheelZoom.enable();\n };\n\n const disableMouseWheel = () => {\n map.scrollWheelZoom.disable();\n };\n\n computeZoomStatus();\n\n map.on(`focus`, enableMouseWheel);\n map.on(`blur`, disableMouseWheel);\n map.on(`zoomend`, computeZoomStatus);\n\n return () => {\n map.off(`focus`, enableMouseWheel);\n map.off(`blur`, disableMouseWheel);\n map.off(`zoomend`, computeZoomStatus);\n };\n }, [map]);\n\n return (\n
\n \n
\n \n
\n
\n \n \n
\n
\n
\n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"ticket\":\"prices-module--ticket--447c3\",\"title\":\"prices-module--title--d0e78\",\"price\":\"prices-module--price--12cfe\"};","import { graphql } from 'gatsby';\nimport { Fragment } from 'react';\n\nimport { Accordion, PreWrap, Text, Title, Trans } from '../components';\nimport { useTranslateArray } from '../hooks';\nimport { stringify } from '../utils';\n\nimport styles from './prices.module.scss';\n\ntype Props = {\n prices: Queries.Squidex_Prices | undefined;\n};\n\nexport const Prices = ({ prices }: Props) => {\n const translateArray = useTranslateArray();\n\n return (\n \n \n <Trans data={prices?.data.title} />\n \n \n \n \n\n \n {translateArray(prices?.data.categories).map(\n ({ title, items }, categoryIndex) => (\n \n {items?.map(({ title, info, price }, itemIndex) => (\n \n
\n \n {title}\n \n {info}\n
\n \n {price}\n \n \n ))}\n
\n ),\n )}\n
\n
\n );\n};\n\nexport const query = graphql`\n fragment Prices on Squidex {\n queryPricesContents {\n id\n data {\n title {\n de\n en\n }\n content {\n de\n en\n }\n categories {\n de {\n ...PriceCategories\n }\n en {\n ...PriceCategories\n }\n }\n additionalInformation {\n de\n en\n }\n }\n flatData {\n season {\n flatData {\n alias\n }\n }\n }\n }\n }\n\n fragment PriceCategories on Squidex_PriceCategoriesComponent {\n title\n items {\n title\n info\n price\n }\n }\n`;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"slope-module--wrapper--49793\",\"opened\":\"slope-module--opened--4e706\",\"closed\":\"slope-module--closed--73e54\",\"symbol\":\"slope-module--symbol--22ac2\",\"text\":\"slope-module--text--da8b4\"};","import { SROnly, Trans, Text } from '../components';\nimport { useClassName, useLiveStatus, useTranslate } from '../hooks';\n\nimport styles from './slope.module.scss';\n\nexport type Props = {\n slope: Queries.Squidex_Slopes;\n statusVisible?: boolean;\n};\n\nexport const Slope = ({ slope, statusVisible }: Props) => {\n const translate = useTranslate();\n const liveStatus = useLiveStatus();\n\n const wrapperClassName = useClassName([\n styles.wrapper,\n slope.flatData.status ? styles.opened : styles.closed,\n ]);\n\n const label = translate(\n slope.flatData.status\n ? liveStatus?.data.slopesOpened\n : liveStatus?.data.slopesClosed,\n );\n\n return (\n
\n {slope.flatData.symbol}\n \n \n \n\n {statusVisible ? (\n \n {label}\n \n ) : (\n {label}\n )}\n
\n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"slopes-module--wrapper--df429\"};","import { useLiveStatus, useTranslate } from '../hooks';\n\nimport { Slope } from './slope';\nimport styles from './slopes.module.scss';\n\ntype Props = {\n slopes: readonly Queries.Squidex_Slopes[];\n statusVisible?: boolean;\n};\n\nexport const Slopes = ({ slopes, statusVisible }: Props) => {\n const translate = useTranslate();\n const liveStatus = useLiveStatus();\n\n return slopes.length > 0 ? (\n \n {slopes?.map((slope) => (\n \n ))}\n \n ) : null;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"webcam-interactive-module--wrapper--f4af8\",\"viewport\":\"webcam-interactive-module--viewport--6b179\",\"fullscreen\":\"webcam-interactive-module--fullscreen--bdae8\",\"iframe\":\"webcam-interactive-module--iframe--8efad\"};","import { useEffect, useRef } from 'react';\n\nimport {\n useAccessibility,\n useButton,\n useClassName,\n useFullscreen,\n useTranslate,\n} from '../hooks';\n\nimport styles from './webcam-interactive.module.scss';\n\nexport type Props = {\n scrollIntoView: boolean;\n webcam: Queries.Squidex_Webcams;\n};\n\nexport const WebcamInteractive = ({ webcam, scrollIntoView }: Props) => {\n const translate = useTranslate();\n const accessibility = useAccessibility();\n\n const mountedRef = useRef(false);\n const iframeRef = useRef(null);\n const viewportRef = useRef(null);\n const buttonRef = useRef(null);\n\n const { isFullscreen, toggleFullscreen, supportsFullscreen } = useFullscreen({\n ref: viewportRef,\n });\n\n const wrapperClassName = useClassName([\n styles.wrapper,\n supportsFullscreen ? styles.fullscreen : ``,\n ]);\n\n const iframeSrc = webcam.flatData.webcamUrl ?? undefined;\n const button = useButton({\n isPressed: isFullscreen,\n onToggle: toggleFullscreen,\n isDisabled: !supportsFullscreen,\n label: isFullscreen\n ? translate(accessibility?.data.closeFullscreen)\n : translate(accessibility?.data.openFullscreen),\n });\n\n useEffect(() => {\n if (!scrollIntoView) {\n return;\n }\n\n buttonRef.current?.scrollIntoView({ behavior: `smooth` });\n }, [scrollIntoView]);\n\n useEffect(() => {\n if (!mountedRef.current || isFullscreen) {\n return;\n }\n\n setTimeout(() => {\n buttonRef.current?.scrollIntoView();\n }, 250);\n }, [isFullscreen]);\n\n useEffect(() => {\n mountedRef.current = true;\n }, []);\n\n return (\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"webcams-interactive-module--wrapper--769b9\"};","import { Fragment, useEffect, useState } from 'react';\n\nimport { Section, TabsControlled, Trans } from '../components';\nimport { useLiveStatus, useTranslate } from '../hooks';\n\nimport { WebcamInteractive } from './webcam-interactive';\nimport styles from './webcams-interactive.module.scss';\n\ntype Props = {\n selectedAlias: string | null;\n webcams: readonly Queries.Squidex_Webcams[];\n};\n\nexport const WebcamsInteractive = ({ webcams, selectedAlias }: Props) => {\n const translate = useTranslate();\n const liveStatus = useLiveStatus();\n\n const [selectedIndex, setSelectedIndex] = useState(() => {\n const index = webcams.findIndex(\n (webcam) => selectedAlias === translate(webcam.data.alias),\n );\n return index >= 0 ? index : 0;\n });\n\n const selectHandler = (selectedIndex: number): void => {\n setSelectedIndex(selectedIndex);\n };\n\n useEffect(() => {\n setSelectedIndex((currentIndex) => {\n const index = webcams.findIndex(\n (webcam) => selectedAlias === translate(webcam.data.alias),\n );\n\n return index >= 0 ? index : currentIndex;\n });\n }, [webcams, selectedAlias]);\n\n return (\n \n \n \n \n {webcams.map((webcam, index) => (\n \n {index === selectedIndex && (\n \n )}\n \n ))}\n \n \n {webcams.map((webcam) => (\n \n \n \n ))}\n \n \n \n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"webcam-preview-module--wrapper--67c1d\",\"figure\":\"webcam-preview-module--figure--65e2d\",\"image\":\"webcam-preview-module--image--2ca46\",\"img\":\"webcam-preview-module--img--e18cd\",\"icon\":\"webcam-preview-module--icon--81a40\",\"loaded\":\"webcam-preview-module--loaded--9e770\"};","import { Link } from 'gatsby';\nimport { useState } from 'react';\n\nimport { Trans } from '../components';\nimport { useClassName, useTranslate } from '../hooks';\nimport { PlayIcon } from '../icons';\n\nimport styles from './webcam-preview.module.scss';\n\nexport type Props = {\n webcam: Queries.Squidex_Webcams;\n};\n\nexport const WebcamPreview = ({ webcam }: Props) => {\n const translate = useTranslate();\n const [isLoaded, setIsLoaded] = useState(false);\n\n const wrapperClassName = useClassName([\n styles.wrapper,\n isLoaded ? styles.loaded : ``,\n ]);\n\n return (\n \n
\n
\n {webcam.flatData.thumbnailUrl ? (\n setIsLoaded(true)}\n />\n ) : null}\n \n
\n
\n \n
\n
\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"webcams-preview-module--wrapper--9636a\"};","import { useLiveStatus, useTranslate } from '../hooks';\n\nimport { WebcamPreview } from './webcam-preview';\nimport styles from './webcams-preview.module.scss';\n\ntype Props = {\n webcams: readonly Queries.Squidex_Webcams[];\n};\n\nexport const WebcamsPreview = ({ webcams }: Props) => {\n const translate = useTranslate();\n const liveStatus = useLiveStatus();\n\n return (\n \n {webcams.map((webcam) => (\n \n ))}\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"weather-forecast-module--wrapper--c260d\",\"header\":\"weather-forecast-module--header--28f2f\",\"title\":\"weather-forecast-module--title--796f0\",\"items\":\"weather-forecast-module--items--78eef\",\"item\":\"weather-forecast-module--item--1461d\",\"symbol\":\"weather-forecast-module--symbol--2ca49\",\"icon\":\"weather-forecast-module--icon--18c49\",\"status\":\"weather-forecast-module--status--90b3f\",\"temperature\":\"weather-forecast-module--temperature--2a2c8\"};","import { InlineSVG, Text, Title, Trans } from '../components';\nimport {\n useLiveStatus,\n useLocale,\n useTranslate,\n useTranslateObject,\n useWeather,\n useFormatDate,\n} from '../hooks';\nimport { isNumber } from '../utils';\n\nimport styles from './weather-forecast.module.scss';\n\nconst addDays = (date: Date, days = 1): Date => {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n};\n\nconst format = (value: unknown, formatter: Intl.NumberFormat): string => {\n if (isNumber(value)) {\n return formatter.format(value);\n }\n\n return `-`;\n};\n\nexport const WeatherForecast = () => {\n const translate = useTranslate();\n const translateObject = useTranslateObject();\n\n const weather = useWeather();\n const { locale } = useLocale();\n const liveStatus = useLiveStatus();\n\n const today = new Date();\n\n const date1 = useFormatDate({\n locale,\n date: addDays(today, 1),\n options: { weekday: `long` },\n });\n const date2 = useFormatDate({\n locale,\n date: addDays(today, 2),\n options: { weekday: `long` },\n });\n const date3 = useFormatDate({\n locale,\n date: addDays(today, 3),\n options: { weekday: `long` },\n });\n\n const day1 = translateObject(weather?.data.forecastDay1);\n const day2 = translateObject(weather?.data.forecastDay2);\n const day3 = translateObject(weather?.data.forecastDay3);\n\n const celsiusFormatter = new Intl.NumberFormat(locale, {\n style: `unit`,\n unit: `celsius`,\n });\n\n return (\n \n
\n \n <Trans data={liveStatus?.data.weatherForecast} />\n \n
\n\n
\n
\n \n {date1}\n \n
\n \n
\n \n \n \n \n {format(day1?.temperatureAvg, celsiusFormatter)}\n \n
\n\n
\n \n {date2}\n \n
\n \n
\n\n \n \n \n \n {format(day2?.temperatureAvg, celsiusFormatter)}\n \n
\n\n
\n \n {date3}\n \n
\n \n
\n \n \n \n \n {format(day3?.temperatureAvg, celsiusFormatter)}\n \n
\n
\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"weather-overall-module--wrapper--2f1a3\",\"header\":\"weather-overall-module--header--85c09\",\"title\":\"weather-overall-module--title--757a8\",\"info\":\"weather-overall-module--info--1fb85\",\"large\":\"weather-overall-module--large--901b4\",\"average\":\"weather-overall-module--average--f4da3\",\"temperature\":\"weather-overall-module--temperature--3eac9\",\"value\":\"weather-overall-module--value--00e85\",\"boundaries\":\"weather-overall-module--boundaries--107f2\",\"icon\":\"weather-overall-module--icon--8381b\",\"small\":\"weather-overall-module--small--57d35\",\"block\":\"weather-overall-module--block--3eb32\",\"item\":\"weather-overall-module--item--4c211\",\"label\":\"weather-overall-module--label--80038\",\"special\":\"weather-overall-module--special--d494e\",\"grid\":\"weather-overall-module--grid--de935\",\"summary\":\"weather-overall-module--summary--d3cce\"};","import { InlineSVG, SROnly, Text, Title, Trans } from '../components';\nimport {\n useFormatDate,\n useLiveStatus,\n useLocale,\n useSettings,\n useTranslate,\n useTranslateObject,\n useWeather,\n} from '../hooks';\nimport { isNumber } from '../utils';\n\nimport styles from './weather-overall.module.scss';\n\nconst format = (value: unknown, formatter: Intl.NumberFormat): string => {\n if (isNumber(value)) {\n return formatter.format(value);\n }\n\n return `-`;\n};\n\nexport const WeatherOverall = () => {\n const translate = useTranslate();\n const translateObject = useTranslateObject();\n\n const { locale } = useLocale();\n const weather = useWeather();\n const settings = useSettings();\n const liveStatus = useLiveStatus();\n\n const season = settings?.flatData.season?.[0];\n const today = translateObject(weather?.data.todayOverall);\n const date = useFormatDate({ locale, date: new Date() });\n\n const celsiusFormatter = new Intl.NumberFormat(locale, {\n style: `unit`,\n unit: `celsius`,\n });\n const percentFormatter = new Intl.NumberFormat(locale, {\n style: `unit`,\n unit: `percent`,\n });\n const centimeterFormatter = new Intl.NumberFormat(locale, {\n style: `unit`,\n unit: `centimeter`,\n });\n const velocityFormatter = new Intl.NumberFormat(locale, {\n style: `unit`,\n unit: `kilometer-per-hour`,\n });\n\n return (\n \n
\n \n <Trans data={liveStatus?.data.weatherOverall} />\n \n
\n\n
\n
\n
\n
\n \n {format(today?.temperatureAvg, celsiusFormatter)}\n \n\n
\n \n {format(today?.temperatureMin, celsiusFormatter)}\n \n \n {format(today?.temperatureMax, celsiusFormatter)}\n \n
\n
\n\n \n
\n\n
\n \n \n \n
\n
\n
\n
\n
\n \n \n \n {date}\n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n \n \n \n \n {format(today?.precipitationProbability, percentFormatter)}\n \n
\n {/*
\n \n \n \n \n {format(today?.windVelocity, velocityFormatter)}\n \n
*/}\n
\n
\n
\n\n {season?.flatData.alias === `winter` ? (\n
\n
\n
\n \n \n \n \n {format(weather?.flatData.snowDepth, centimeterFormatter)}\n \n
\n {/*
\n \n \n \n \n {weather?.flatData.avalancheStatus || `-`}\n \n
*/}\n
\n \n \n \n \n {format(today?.newSnow, centimeterFormatter)}\n \n
\n
\n
\n ) : null}\n\n
\n \n \n <Trans data={liveStatus?.data.weatherSummary} />\n \n \n \n {today?.text}\n \n
\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"weather-over-the-day-module--wrapper--f8c3c\",\"header\":\"weather-over-the-day-module--header--1ae13\",\"title\":\"weather-over-the-day-module--title--95ee4\",\"items\":\"weather-over-the-day-module--items--2072f\",\"item\":\"weather-over-the-day-module--item--98b71\",\"icon\":\"weather-over-the-day-module--icon--984ed\",\"summary\":\"weather-over-the-day-module--summary--c5809\"};","import { InlineSVG, Text, Title, Trans } from '../components';\nimport {\n useLiveStatus,\n useLocale,\n useTranslate,\n useTranslateObject,\n useWeather,\n} from '../hooks';\nimport { isNumber } from '../utils';\n\nimport styles from './weather-over-the-day.module.scss';\n\nconst format = (value: unknown, formatter: Intl.NumberFormat): string => {\n if (isNumber(value)) {\n return formatter.format(value);\n }\n\n return `-`;\n};\n\nexport const WeatherOverTheDay = () => {\n const translate = useTranslate();\n const translateObject = useTranslateObject();\n\n const weather = useWeather();\n const { locale } = useLocale();\n const liveStatus = useLiveStatus();\n\n const morning = translateObject(weather?.data.todayMorning);\n const noon = translateObject(weather?.data.todayNoon);\n const evening = translateObject(weather?.data.todayEvening);\n\n const celsiusFormatter = new Intl.NumberFormat(locale, {\n style: `unit`,\n unit: `celsius`,\n });\n\n return (\n \n
\n \n <Trans data={liveStatus?.data.weatherOverTheDay} />\n \n
\n\n
\n
\n \n <Trans data={liveStatus?.data.weatherMorning} />\n \n \n\n \n {format(morning?.temperatureAvg, celsiusFormatter)}\n \n\n \n \n \n
\n\n
\n \n <Trans data={liveStatus?.data.weatherNoon} />\n \n \n\n \n {format(noon?.temperatureAvg, celsiusFormatter)}\n \n\n \n \n \n
\n\n
\n \n <Trans data={liveStatus?.data.weatherEvening} />\n \n \n \n {format(evening?.temperatureAvg, celsiusFormatter)}\n \n \n \n \n
\n
\n \n );\n};\n","import { forwardRef } from 'react';\nimport type { ReactElement, ComponentProps, RefObject } from 'react';\n\nimport { RovingIndexProvider } from '../../contexts';\nimport { useForwardedRef } from '../../hooks';\n\ntype ProviderProps = Omit<\n ComponentProps,\n 'parentRef' | 'children'\n>;\n\ntype Props = {\n children: (props: { ref: RefObject }) => ReactElement;\n} & ProviderProps;\n\nexport const RovingIndexContainer = forwardRef(\n function RovingIndexContainer({ children, ...props }: Props, ref) {\n const forwardedRef = useForwardedRef(ref);\n\n return (\n \n {children({ ref: forwardedRef })}\n \n );\n },\n);\n","import { forwardRef, useEffect, useRef } from 'react';\nimport type { RefObject, ReactElement } from 'react';\n\nimport { useForwardedRef, useRovingIndex } from '../../hooks';\n\ntype Options = Parameters['item']>[1];\n\ntype Props = {\n children: (props: { ref: RefObject }) => ReactElement;\n options?: Options;\n};\n\nexport const RovingIndexItem = forwardRef(\n function RovingIndexItem({ children, options = {} }: Props, ref) {\n const forwardedRef = useForwardedRef(ref);\n const optionsRef = useRef(options);\n optionsRef.current = options;\n\n const rovingIndex = useRovingIndex();\n\n useEffect(\n () => rovingIndex.item(forwardedRef, optionsRef.current),\n [rovingIndex],\n );\n\n return children({ ref: forwardedRef });\n },\n);\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"sr-only-module--wrapper--d2cc7\"};","import type { HTMLAttributes, ReactNode } from 'react';\n\nimport { useClassName } from '../../hooks';\n\nimport styles from './sr-only.module.scss';\n\ntype Props = {\n children: ReactNode;\n} & (\n | ({\n wrapper?: `span`;\n } & HTMLAttributes)\n | ({\n wrapper?: `div`;\n } & HTMLAttributes)\n);\n\nexport const SROnly = ({\n children,\n wrapper: Wrapper = `span`,\n className = undefined,\n ...domProps\n}: Props) => {\n const wrapperClassName = useClassName([styles.wrapper, className]);\n\n return (\n \n {children}\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"xs\":\"30rem\",\"sm\":\"48rem\",\"md\":\"64rem\",\"lg\":\"75rem\",\"xl\":\"90rem\"};","import styles from './breakpoints.module.scss';\n\n// parse SASS variables and convert rem to px: \"1rem\" -> 16\nexport const XS = 16 * parseFloat(styles.xs);\nexport const SM = 16 * parseFloat(styles.sm);\nexport const MD = 16 * parseFloat(styles.md);\nexport const LG = 16 * parseFloat(styles.lg);\nexport const XL = 16 * parseFloat(styles.xl);\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"field-module--wrapper--9e688\",\"label\":\"field-module--label--db908\",\"text\":\"field-module--text--359c5\",\"required\":\"field-module--required--1b7cd\",\"input\":\"field-module--input--9b49e\",\"message\":\"field-module--message--fdadf\",\"error\":\"field-module--error--e8d76\",\"touched\":\"field-module--touched--f9270\",\"submitted\":\"field-module--submitted--75741\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"checkbox-module--wrapper--bd0d9\",\"input\":\"checkbox-module--input--fce06\",\"checkmark\":\"checkbox-module--checkmark--d91c3\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"input-module--wrapper--20ae3\"};","import { useClassName } from '../../../hooks';\nimport type { BaseInputProps } from '../types';\n\nimport styles from './input.module.scss';\n\nexport type Props = BaseInputProps;\n\nexport const Input = ({ className = undefined, ...props }: Props) => {\n const wrapperClassName = useClassName([styles.wrapper, className]);\n\n return ;\n};\n","import { useId } from 'react';\n\nimport { useClassName } from '../../../hooks';\nimport { Markdown } from '../../html';\nimport type { InputProps } from '../types';\n\nimport styles from './checkbox.module.scss';\nimport { Input } from './input';\n\n\nexport type Props = InputProps & {\n label?: string;\n};\n\nexport const CheckboxField = ({\n value,\n label = undefined,\n className = undefined,\n onChange,\n ...props\n}: Props) => {\n const autoId = useId();\n const id = props.id || autoId;\n const inputClassName = useClassName([styles.input, className]);\n\n return (\n