{"version":3,"file":"app-318a1f8d4349ee62aaa4.js","mappings":"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","sources":["webpack://thinkmoney-static-site/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://thinkmoney-static-site/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://thinkmoney-static-site/./node_modules/any-base/index.js","webpack://thinkmoney-static-site/./node_modules/any-base/src/converter.js","webpack://thinkmoney-static-site/./node_modules/axios/index.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/adapters/xhr.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/axios.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/cancel/Cancel.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/cancel/CancelToken.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/cancel/isCancel.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/core/Axios.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/core/InterceptorManager.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/core/buildFullPath.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/core/createError.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/core/dispatchRequest.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/core/enhanceError.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/core/mergeConfig.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/core/settle.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/core/transformData.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/defaults.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/env/data.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/helpers/bind.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/helpers/buildURL.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/helpers/combineURLs.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/helpers/cookies.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/helpers/spread.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/helpers/validator.js","webpack://thinkmoney-static-site/./node_modules/axios/lib/utils.js","webpack://thinkmoney-static-site/./node_modules/bail/index.js","webpack://thinkmoney-static-site/./node_modules/camelcase/index.js","webpack://thinkmoney-static-site/./node_modules/comma-separated-tokens/index.js","webpack://thinkmoney-static-site/./node_modules/crypto-js/core.js","webpack://thinkmoney-static-site/./node_modules/crypto-js/enc-base64.js","webpack://thinkmoney-static-site/./node_modules/crypto-js/sha256.js","webpack://thinkmoney-static-site/./node_modules/extend/index.js","webpack://thinkmoney-static-site/./node_modules/filter-invalid-dom-props/dist/index.js","webpack://thinkmoney-static-site/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://thinkmoney-static-site/./node_modules/gatsby-react-router-scroll/index.js","webpack://thinkmoney-static-site/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://thinkmoney-static-site/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://thinkmoney-static-site/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://thinkmoney-static-site/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://thinkmoney-static-site/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://thinkmoney-static-site/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://thinkmoney-static-site/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://thinkmoney-static-site/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://thinkmoney-static-site/./.cache/api-runner-browser-plugins.js","webpack://thinkmoney-static-site/./.cache/api-runner-browser.js","webpack://thinkmoney-static-site/./.cache/emitter.js","webpack://thinkmoney-static-site/./node_modules/mitt/dist/mitt.es.js","webpack://thinkmoney-static-site/./.cache/normalize-page-path.js","webpack://thinkmoney-static-site/./.cache/find-path.js","webpack://thinkmoney-static-site/./.cache/static-query.js","webpack://thinkmoney-static-site/./.cache/gatsby-browser-entry.js","webpack://thinkmoney-static-site/./.cache/prefetch.js","webpack://thinkmoney-static-site/./.cache/loader.js","webpack://thinkmoney-static-site/./.cache/head/components/fire-callback-in-effect.js","webpack://thinkmoney-static-site/./.cache/head/constants.js","webpack://thinkmoney-static-site/./.cache/head/utils.js","webpack://thinkmoney-static-site/./.cache/head/head-export-handler-for-browser.js","webpack://thinkmoney-static-site/./.cache/page-renderer.js","webpack://thinkmoney-static-site/./.cache/route-announcer-props.js","webpack://thinkmoney-static-site/./.cache/navigation.js","webpack://thinkmoney-static-site/./node_modules/shallow-compare/es/index.js","webpack://thinkmoney-static-site/./.cache/ensure-resources.js","webpack://thinkmoney-static-site/./.cache/production-app.js","webpack://thinkmoney-static-site/./.cache/public-page-renderer-prod.js","webpack://thinkmoney-static-site/./.cache/public-page-renderer.js","webpack://thinkmoney-static-site/./.cache/react-dom-utils.js","webpack://thinkmoney-static-site/./.cache/react-lifecycles-compat.js","webpack://thinkmoney-static-site/./.cache/redirect-utils.js","webpack://thinkmoney-static-site/./.cache/register-service-worker.js","webpack://thinkmoney-static-site/./.cache/strip-prefix.js","webpack://thinkmoney-static-site/./gatsby-browser.js","webpack://thinkmoney-static-site/./node_modules/gatsby-background-image/gatsby-browser.js","webpack://thinkmoney-static-site/./node_modules/gatsby-background-image/index.js","webpack://thinkmoney-static-site/./node_modules/gatsby-background-image/lib/BackgroundUtils.js","webpack://thinkmoney-static-site/./node_modules/gatsby-background-image/lib/ClassCache.js","webpack://thinkmoney-static-site/./node_modules/gatsby-background-image/lib/HelperUtils.js","webpack://thinkmoney-static-site/./node_modules/gatsby-background-image/lib/ImageCache.js","webpack://thinkmoney-static-site/./node_modules/gatsby-background-image/lib/ImageHandling.js","webpack://thinkmoney-static-site/./node_modules/gatsby-background-image/lib/ImageRef.js","webpack://thinkmoney-static-site/./node_modules/gatsby-background-image/lib/ImageUtils.js","webpack://thinkmoney-static-site/./node_modules/gatsby-background-image/lib/IntersectionObserverUtils.js","webpack://thinkmoney-static-site/./node_modules/gatsby-background-image/lib/MediaUtils.js","webpack://thinkmoney-static-site/./node_modules/gatsby-background-image/lib/SimpleUtils.js","webpack://thinkmoney-static-site/./node_modules/gatsby-background-image/lib/StyleCreation.js","webpack://thinkmoney-static-site/./node_modules/gatsby-background-image/lib/StyleUtils.js","webpack://thinkmoney-static-site/./node_modules/gatsby-plugin-anchor-links/components/AnchorLink.js","webpack://thinkmoney-static-site/./node_modules/gatsby-plugin-anchor-links/errors.js","webpack://thinkmoney-static-site/./node_modules/gatsby-plugin-anchor-links/gatsby-browser.js","webpack://thinkmoney-static-site/./node_modules/gatsby-plugin-anchor-links/index.js","webpack://thinkmoney-static-site/./node_modules/gatsby-plugin-anchor-links/utils.js","webpack://thinkmoney-static-site/./node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js","webpack://thinkmoney-static-site/../src/image-utils.ts","webpack://thinkmoney-static-site/../src/components/hooks.ts","webpack://thinkmoney-static-site/../src/components/layout-wrapper.tsx","webpack://thinkmoney-static-site/../src/components/picture.tsx","webpack://thinkmoney-static-site/../src/components/placeholder.tsx","webpack://thinkmoney-static-site/../src/components/main-image.tsx","webpack://thinkmoney-static-site/../src/components/gatsby-image.server.tsx","webpack://thinkmoney-static-site/../src/components/gatsby-image.browser.tsx","webpack://thinkmoney-static-site/../src/components/static-image.server.tsx","webpack://thinkmoney-static-site/../src/components/static-image.tsx","webpack://thinkmoney-static-site/./node_modules/gatsby-plugin-styled-components/gatsby-browser.js","webpack://thinkmoney-static-site/./node_modules/embla-carousel-auto-height/esm/embla-carousel-auto-height.esm.js","webpack://thinkmoney-static-site/./src/components/AccountComparison/Selector/index.js","webpack://thinkmoney-static-site/./src/components/AccountComparison/index.js","webpack://thinkmoney-static-site/./src/components/AccountFeature/index.js","webpack://thinkmoney-static-site/./src/components/AppStoreLink/index.js","webpack://thinkmoney-static-site/./src/components/AppsFlyer/Button/index.js","webpack://thinkmoney-static-site/./src/components/AppsFlyer/QRCode/index.js","webpack://thinkmoney-static-site/./src/components/AppsFlyer/index.js","webpack://thinkmoney-static-site/./src/proptypes/colourProps.js","webpack://thinkmoney-static-site/./src/components/Banner/index.js","webpack://thinkmoney-static-site/./src/components/Breadcrumbs/index.js","webpack://thinkmoney-static-site/./src/components/Button/index.js","webpack://thinkmoney-static-site/./src/proptypes/cardProps.js","webpack://thinkmoney-static-site/./src/components/HorizontalScroll/index.js","webpack://thinkmoney-static-site/./src/components/Cards/LargeCard/index.js","webpack://thinkmoney-static-site/./src/components/Cards/InfoCard/index.js","webpack://thinkmoney-static-site/./src/components/Card/index.js","webpack://thinkmoney-static-site/./src/components/CardContainer/index.js","webpack://thinkmoney-static-site/./src/components/ColumnLink/index.js","webpack://thinkmoney-static-site/./src/components/ColumnTitle/index.js","webpack://thinkmoney-static-site/./src/components/ComponentMapper/SharedOptions/index.js","webpack://thinkmoney-static-site/./src/components/ComponentMapper/dictionary.js","webpack://thinkmoney-static-site/./src/components/ComponentMapper/index.js","webpack://thinkmoney-static-site/./src/components/Container/index.js","webpack://thinkmoney-static-site/./src/components/Content/index.js","webpack://thinkmoney-static-site/./src/components/ContentParser/index.js","webpack://thinkmoney-static-site/./node_modules/datocms-structured-text-generic-html-renderer/node_modules/datocms-structured-text-utils/dist/esm/definitions.js","webpack://thinkmoney-static-site/./node_modules/datocms-structured-text-generic-html-renderer/node_modules/datocms-structured-text-utils/dist/esm/guards.js","webpack://thinkmoney-static-site/./node_modules/array-flatten/dist.es2015/index.js","webpack://thinkmoney-static-site/./node_modules/datocms-structured-text-generic-html-renderer/node_modules/datocms-structured-text-utils/dist/esm/render.js","webpack://thinkmoney-static-site/./node_modules/datocms-structured-text-generic-html-renderer/dist/esm/index.js","webpack://thinkmoney-static-site/./node_modules/react-datocms/node_modules/datocms-structured-text-utils/dist/esm/definitions.js","webpack://thinkmoney-static-site/./node_modules/react-datocms/node_modules/datocms-structured-text-utils/dist/esm/guards.js","webpack://thinkmoney-static-site/./node_modules/react-datocms/node_modules/datocms-structured-text-utils/dist/esm/render.js","webpack://thinkmoney-static-site/./node_modules/react-datocms/dist/esm/StructuredText/index.js","webpack://thinkmoney-static-site/./node_modules/datocms-structured-text-utils/dist/esm/definitions.js","webpack://thinkmoney-static-site/./node_modules/datocms-structured-text-utils/dist/esm/guards.js","webpack://thinkmoney-static-site/./src/components/ContentParserStructured/index.js","webpack://thinkmoney-static-site/./src/components/form/Dropdown/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/constants/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/parseISO/index.js","webpack://thinkmoney-static-site/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/toDate/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/isValid/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/isDate/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/format/index.js","webpack://thinkmoney-static-site/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://thinkmoney-static-site/./src/components/CurrencyConverter/index.js","webpack://thinkmoney-static-site/./src/components/CustomHTML/index.js","webpack://thinkmoney-static-site/./src/proptypes/faqProps.js","webpack://thinkmoney-static-site/./src/components/FAQ/Question/index.js","webpack://thinkmoney-static-site/./src/components/FAQ/Accordion/index.js","webpack://thinkmoney-static-site/./src/components/FAQ/index.js","webpack://thinkmoney-static-site/./src/components/FAQCategory/index.js","webpack://thinkmoney-static-site/./src/components/FlexWrapper/index.js","webpack://thinkmoney-static-site/./src/components/GlobalStyle/index.js","webpack://thinkmoney-static-site/./src/components/HeadTags/index.js","webpack://thinkmoney-static-site/./src/images/favicon.png","webpack://thinkmoney-static-site/./src/components/Icon/index.js","webpack://thinkmoney-static-site/./src/components/IconWithContent/index.js","webpack://thinkmoney-static-site/./src/components/Icons/Checkmark/index.js","webpack://thinkmoney-static-site/./src/components/Icons/ChevronRight/index.js","webpack://thinkmoney-static-site/./src/components/Icons/Facebook/index.js","webpack://thinkmoney-static-site/./src/components/Icons/Remove/index.js","webpack://thinkmoney-static-site/./src/components/Icons/Twitter/index.js","webpack://thinkmoney-static-site/./src/components/Image/index.js","webpack://thinkmoney-static-site/./src/components/ImageDynamic/index.js","webpack://thinkmoney-static-site/./src/components/ImageList/index.js","webpack://thinkmoney-static-site/./src/components/ImageStatic/index.js","webpack://thinkmoney-static-site/./src/components/ImageWithContent/index.js","webpack://thinkmoney-static-site/./src/components/Monetate/index.js","webpack://thinkmoney-static-site/./src/proptypes/headerProps.js","webpack://thinkmoney-static-site/./src/components/Layout/Header/DesktopHeader/MenuItem/index.js","webpack://thinkmoney-static-site/./src/components/Layout/Header/DesktopHeader/index.js","webpack://thinkmoney-static-site/./src/components/Icons/Cross/index.js","webpack://thinkmoney-static-site/./src/components/Icons/Hamburger/index.js","webpack://thinkmoney-static-site/./src/components/Layout/Header/MobileHeader/MenuItem/index.js","webpack://thinkmoney-static-site/./src/components/Layout/Header/MobileHeader/index.js","webpack://thinkmoney-static-site/./src/components/Layout/Header/index.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/display.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/catchUserErrors.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/monitor.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/utils/polyfills.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/getGlobalObject.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/utils/byteUtils.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/getZoneJsOriginalValue.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/timer.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/utils/functionUtils.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/serialisation/jsonStringify.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/utils/objectUtils.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/context/customerDataTracker.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/utils/typeUtils.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/mergeInto.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/serialisation/sanitize.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/observable.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/context/contextManager.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/trackingConsent.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/browser/addEventListener.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/context/storeContextManager.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/encoder.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/stackTrace/computeStackTrace.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/stackTrace/handlingStack.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/error/error.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/experimentalFeatures.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/configuration/intakeSites.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/utils/numberUtils.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/utils/timeUtils.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/sendToExtension.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/connectivity/connectivity.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/utils/arrayUtils.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/boundedBuffer.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/telemetry/rawTelemetryEvent.types.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/telemetry/telemetry.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/user/user.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/boot/displayAlreadyInitializedError.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/utils/stringUtils.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/vital/vitalCollection.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/transport/eventBridge.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/instrumentMethod.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/utils/urlPolyfill.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/browser/fetchObservable.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/browser/cookie.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/synthetics/syntheticsWorkerValues.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/utils/browserDetection.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionStoreStrategy.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/session/sessionConstants.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/session/sessionState.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/session/oldCookiesMigration.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInCookie.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInLocalStorage.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/session/sessionStoreOperations.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/session/sessionStore.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/configuration/endpointBuilder.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/configuration/tags.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/configuration/transportConfiguration.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/configuration/configuration.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/matchOption.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/tracing/tracer.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/configuration/configuration.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/configuration/remoteConfiguration.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/boot/preStartRum.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/plugins.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/browser/pageExitObservable.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/browser/domMutationObservable.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceUtils.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/browser/performanceObservable.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/browser/performanceCollection.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/error/error.types.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/eventRateLimiter/createEventRateLimiter.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/syntheticsContext.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/limitModification.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/assembly.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/abstractLifeCycle.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/lifeCycle.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/valueHistory.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/viewHistory.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/browser/xhrObservable.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/requestCollection.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/utils/responseUtils.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/tools/readBytesFromStream.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/discardNegativeDuration.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/trackEventCounts.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/waitPageActivityEnd.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/browser/polyfills.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/browser/htmlDomUtils.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/privacy.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/action/getActionNameFromElement.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/getSelectorFromElement.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/action/clickChain.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/action/listenActionEvents.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/action/computeFrustration.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/action/trackClickActions.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/action/actionCollection.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/error/trackRuntimeError.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/console/consoleObservable.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/report/reportObservable.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/error/errorCollection.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/error/trackConsoleError.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/error/trackReportError.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/resource/matchRequestResourceEntry.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/browser/runOnReadyState.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/tracing/getDocumentTraceId.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/browser/performanceUtils.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/resource/retrieveInitialDocumentResourceTiming.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceCollection.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstContentfulPaint.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackNavigationTimings.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLargestContentfulPaint.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstHidden.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInitialViewMetrics.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstInput.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/interactionCountPolyfill.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/browser/viewportObservable.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInteractionToNextPaint.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/browser/scroll.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackScrollMetrics.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCommonViewMetrics.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLoadingTime.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/view/trackViews.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/view/trackViewEventCounts.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewCollection.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/domain/session/sessionManager.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/rumSessionManager.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/transport/batch.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/transport/sendWithRetryStrategy.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/transport/httpRequest.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/transport/flushController.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/transport/startRumBatch.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/transport/startBatchWithReplica.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/urlContexts.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/browser/locationChangeObservable.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/featureFlagContext.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/startCustomerDataTelemetry.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/pageStateHistory.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/browser/cookieObservable.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/ciVisibilityContext.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/getSessionReplayUrl.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/replayStats.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializationUtils.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/types/sessionReplayConstants.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeStyleSheets.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttribute.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttributes.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeNode.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeDocument.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/eventsUtils.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/viewports.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/assembly.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackMove.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackMouseInteraction.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackScroll.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackViewportResize.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackMediaInteraction.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackStyleSheet.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackFocus.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackFrustration.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackViewEnd.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackInput.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/mutationBatch.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackMutation.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/shadowRootsController.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/record.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/elementsScrollPositions.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/startFullSnapshots.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/record/recordIds.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segment.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segmentCollection.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/buildReplayPayload.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/boot/isBrowserSupported.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/getSessionReplayLink.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/deflate/deflateEncoder.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/deflate/deflateWorker.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/entries/main.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-core/esm/boot/init.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/boot/recorderApi.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/boot/startRecording.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum/esm/domain/startRecordBridge.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/boot/rumPublicApi.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/commonContext.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/boot/startRum.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/transport/startRumEventBridge.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/displayContext.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/longAnimationFrame/longAnimationFrameCollection.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/longTask/longTaskCollection.js","webpack://thinkmoney-static-site/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/internalContext.js","webpack://thinkmoney-static-site/./src/hooks/useDatadog/index.js","webpack://thinkmoney-static-site/./src/components/Layout/index.js","webpack://thinkmoney-static-site/./src/components/List/ListItem/index.js","webpack://thinkmoney-static-site/./src/components/List/index.js","webpack://thinkmoney-static-site/./src/components/Lottie/index.js","webpack://thinkmoney-static-site/./src/components/LottieAsync/index.js","webpack://thinkmoney-static-site/./src/components/LottieSpinner/index.js","webpack://thinkmoney-static-site/./src/components/MoreInformation/index.js","webpack://thinkmoney-static-site/./src/utils/SEOLookup/index.js","webpack://thinkmoney-static-site/./src/components/NavLink/index.js","webpack://thinkmoney-static-site/./src/components/OtCookieList/index.js","webpack://thinkmoney-static-site/./src/components/Panel/index.js","webpack://thinkmoney-static-site/./src/utils/formatCurrency/index.js","webpack://thinkmoney-static-site/./src/components/RepExample/index.js","webpack://thinkmoney-static-site/./src/components/SMS/index.js","webpack://thinkmoney-static-site/./src/components/Separator/index.js","webpack://thinkmoney-static-site/./src/components/Icons/Youtube/index.js","webpack://thinkmoney-static-site/./src/components/SocialMediaLink/index.js","webpack://thinkmoney-static-site/./node_modules/react-intersection-observer/react-intersection-observer.m.js","webpack://thinkmoney-static-site/./src/components/StickyFooter/index.js","webpack://thinkmoney-static-site/./src/components/Table/index.js","webpack://thinkmoney-static-site/./src/components/TrustpilotCarousel/index.js","webpack://thinkmoney-static-site/./node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js","webpack://thinkmoney-static-site/./src/components/Carousel/index.js","webpack://thinkmoney-static-site/./src/components/TrustpilotReview/index.js","webpack://thinkmoney-static-site/./src/components/TrustpilotReview/star.svg","webpack://thinkmoney-static-site/./src/components/Typography/index.js","webpack://thinkmoney-static-site/./src/components/Video/index.js","webpack://thinkmoney-static-site/./src/components/Icons/Search/index.js","webpack://thinkmoney-static-site/./src/components/form/Input/index.js","webpack://thinkmoney-static-site/./src/constants.js","webpack://thinkmoney-static-site/./src/proptypes/imageProps.js","webpack://thinkmoney-static-site/./src/utils/contentGrouper/index.js","webpack://thinkmoney-static-site/./src/utils/dataLayerPush/index.js","webpack://thinkmoney-static-site/./src/utils/debounce/index.js","webpack://thinkmoney-static-site/./src/utils/isEnterKeyPressed/index.js","webpack://thinkmoney-static-site/./src/utils/isMobileUser/index.js","webpack://thinkmoney-static-site/./src/utils/isServerSideRender/index.js","webpack://thinkmoney-static-site/./src/utils/isStructuredContentEmpty/index.js","webpack://thinkmoney-static-site/./src/utils/queryParamsToObj/index.js","webpack://thinkmoney-static-site/./src/utils/stringSwitch/index.js","webpack://thinkmoney-static-site/./src/utils/stringToDast/index.js","webpack://thinkmoney-static-site/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://thinkmoney-static-site/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://thinkmoney-static-site/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://thinkmoney-static-site/./node_modules/gbimage-bridge/dist/index.modern.js","webpack://thinkmoney-static-site/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://thinkmoney-static-site/./node_modules/html-attributes/lib/html-attributes.js","webpack://thinkmoney-static-site/./node_modules/inline-style-parser/index.js","webpack://thinkmoney-static-site/./node_modules/intersection-observer/intersection-observer.js","webpack://thinkmoney-static-site/./node_modules/invariant/browser.js","webpack://thinkmoney-static-site/./node_modules/mdast-util-definitions/index.js","webpack://thinkmoney-static-site/./node_modules/mdast-util-from-markdown/dist/index.js","webpack://thinkmoney-static-site/./node_modules/mdast-util-from-markdown/index.js","webpack://thinkmoney-static-site/./node_modules/mdast-util-to-string/index.js","webpack://thinkmoney-static-site/./node_modules/mdurl/encode.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/character/ascii-alpha.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/character/ascii-alphanumeric.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/character/ascii-atext.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/character/ascii-control.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/character/ascii-digit.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/character/ascii-hex-digit.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/character/ascii-punctuation.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/character/markdown-line-ending-or-space.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/character/markdown-line-ending.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/character/markdown-space.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/character/unicode-punctuation.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/character/unicode-whitespace.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/constant/assign.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/constant/from-char-code.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/constant/has-own-property.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/constant/html-block-names.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/constant/html-raw-names.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/constant/splice.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/constant/unicode-punctuation-regex.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/constructs.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/initialize/content.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/initialize/document.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/initialize/flow.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/initialize/text.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/parse.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/postprocess.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/preprocess.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/attention.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/autolink.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/block-quote.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/character-escape.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/character-reference.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/code-fenced.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/code-indented.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/code-text.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/content.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/definition.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/factory-destination.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/factory-label.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/factory-space.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/factory-title.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/factory-whitespace.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/hard-break-escape.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/heading-atx.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/html-flow.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/html-text.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/label-end.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/label-start-image.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/label-start-link.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/line-ending.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/list.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/partial-blank-line.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/setext-underline.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/tokenize/thematic-break.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/chunked-push.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/chunked-splice.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/classify-character.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/combine-extensions.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/create-tokenizer.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/miniflat.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/move-point.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/normalize-identifier.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/prefix-size.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/regex-check.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/resolve-all.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/safe-from-int.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/serialize-chunks.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/shallow.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/size-chunks.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/slice-chunks.js","webpack://thinkmoney-static-site/./node_modules/micromark/dist/util/subtokenize.js","webpack://thinkmoney-static-site/./node_modules/parse-entities/decode-entity.browser.js","webpack://thinkmoney-static-site/./node_modules/performance-now/lib/performance-now.js","webpack://thinkmoney-static-site/./node_modules/process/browser.js","webpack://thinkmoney-static-site/./node_modules/property-information/find.js","webpack://thinkmoney-static-site/./node_modules/property-information/html.js","webpack://thinkmoney-static-site/./node_modules/property-information/lib/aria.js","webpack://thinkmoney-static-site/./node_modules/property-information/lib/html.js","webpack://thinkmoney-static-site/./node_modules/property-information/lib/svg.js","webpack://thinkmoney-static-site/./node_modules/property-information/lib/util/case-insensitive-transform.js","webpack://thinkmoney-static-site/./node_modules/property-information/lib/util/case-sensitive-transform.js","webpack://thinkmoney-static-site/./node_modules/property-information/lib/util/create.js","webpack://thinkmoney-static-site/./node_modules/property-information/lib/util/defined-info.js","webpack://thinkmoney-static-site/./node_modules/property-information/lib/util/info.js","webpack://thinkmoney-static-site/./node_modules/property-information/lib/util/merge.js","webpack://thinkmoney-static-site/./node_modules/property-information/lib/util/schema.js","webpack://thinkmoney-static-site/./node_modules/property-information/lib/util/types.js","webpack://thinkmoney-static-site/./node_modules/property-information/lib/xlink.js","webpack://thinkmoney-static-site/./node_modules/property-information/lib/xml.js","webpack://thinkmoney-static-site/./node_modules/property-information/lib/xmlns.js","webpack://thinkmoney-static-site/./node_modules/property-information/normalize.js","webpack://thinkmoney-static-site/./node_modules/property-information/svg.js","webpack://thinkmoney-static-site/./node_modules/raf/index.js","webpack://thinkmoney-static-site/./node_modules/react-fast-compare/index.js","webpack://thinkmoney-static-site/./node_modules/react-helmet/es/Helmet.js","webpack://thinkmoney-static-site/./node_modules/react-is/cjs/react-is.production.min.js","webpack://thinkmoney-static-site/./node_modules/react-is/index.js","webpack://thinkmoney-static-site/./node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","webpack://thinkmoney-static-site/./node_modules/react-markdown/node_modules/react-is/index.js","webpack://thinkmoney-static-site/./node_modules/react-markdown/src/ast-to-react.js","webpack://thinkmoney-static-site/./node_modules/react-markdown/src/react-markdown.js","webpack://thinkmoney-static-site/./node_modules/react-markdown/src/rehype-filter.js","webpack://thinkmoney-static-site/./node_modules/react-markdown/src/uri-transformer.js","webpack://thinkmoney-static-site/./node_modules/react-side-effect/lib/index.js","webpack://thinkmoney-static-site/./node_modules/remark-parse/index.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/index.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/index.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/all.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/footer.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/break.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/code.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/delete.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/footnote.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/heading.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/html.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/image.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/index.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/link.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/list.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/root.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/strong.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/table.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/text.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/index.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/one.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/revert.js","webpack://thinkmoney-static-site/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/wrap.js","webpack://thinkmoney-static-site/./node_modules/scroll-to-element/ease.js","webpack://thinkmoney-static-site/./node_modules/scroll-to-element/emitter.js","webpack://thinkmoney-static-site/./node_modules/scroll-to-element/index.js","webpack://thinkmoney-static-site/./node_modules/scroll-to-element/scroll-to.js","webpack://thinkmoney-static-site/./node_modules/scroll-to-element/tween.js","webpack://thinkmoney-static-site/./node_modules/shallowequal/index.js","webpack://thinkmoney-static-site/./node_modules/short-uuid/index.js","webpack://thinkmoney-static-site/./node_modules/short-uuid/node_modules/uuid/dist/esm-browser/rng.js","webpack://thinkmoney-static-site/./node_modules/short-uuid/node_modules/uuid/dist/esm-browser/regex.js","webpack://thinkmoney-static-site/./node_modules/short-uuid/node_modules/uuid/dist/esm-browser/stringify.js","webpack://thinkmoney-static-site/./node_modules/short-uuid/node_modules/uuid/dist/esm-browser/validate.js","webpack://thinkmoney-static-site/./node_modules/short-uuid/node_modules/uuid/dist/esm-browser/v1.js","webpack://thinkmoney-static-site/./node_modules/short-uuid/node_modules/uuid/dist/esm-browser/parse.js","webpack://thinkmoney-static-site/./node_modules/short-uuid/node_modules/uuid/dist/esm-browser/v35.js","webpack://thinkmoney-static-site/./node_modules/short-uuid/node_modules/uuid/dist/esm-browser/md5.js","webpack://thinkmoney-static-site/./node_modules/short-uuid/node_modules/uuid/dist/esm-browser/v3.js","webpack://thinkmoney-static-site/./node_modules/short-uuid/node_modules/uuid/dist/esm-browser/v4.js","webpack://thinkmoney-static-site/./node_modules/short-uuid/node_modules/uuid/dist/esm-browser/sha1.js","webpack://thinkmoney-static-site/./node_modules/short-uuid/node_modules/uuid/dist/esm-browser/v5.js","webpack://thinkmoney-static-site/./node_modules/short-uuid/node_modules/uuid/dist/esm-browser/nil.js","webpack://thinkmoney-static-site/./node_modules/short-uuid/node_modules/uuid/dist/esm-browser/version.js","webpack://thinkmoney-static-site/./node_modules/sort-media-queries/lib/index.js","webpack://thinkmoney-static-site/./node_modules/space-separated-tokens/index.js","webpack://thinkmoney-static-site/./node_modules/style-to-object/index.js","webpack://thinkmoney-static-site/./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack://thinkmoney-static-site/./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://thinkmoney-static-site/./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://thinkmoney-static-site/./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://thinkmoney-static-site/./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://thinkmoney-static-site/./node_modules/trough/index.js","webpack://thinkmoney-static-site/./node_modules/trough/wrap.js","webpack://thinkmoney-static-site/./node_modules/unified/index.js","webpack://thinkmoney-static-site/./node_modules/unified/node_modules/is-buffer/index.js","webpack://thinkmoney-static-site/./node_modules/unified/node_modules/is-plain-obj/index.js","webpack://thinkmoney-static-site/./node_modules/unist-builder/index.js","webpack://thinkmoney-static-site/./node_modules/unist-util-generated/index.js","webpack://thinkmoney-static-site/./node_modules/unist-util-is/convert.js","webpack://thinkmoney-static-site/./node_modules/unist-util-position/index.js","webpack://thinkmoney-static-site/./node_modules/unist-util-stringify-position/index.js","webpack://thinkmoney-static-site/./node_modules/unist-util-visit-parents/color.browser.js","webpack://thinkmoney-static-site/./node_modules/unist-util-visit-parents/index.js","webpack://thinkmoney-static-site/./node_modules/unist-util-visit/index.js","webpack://thinkmoney-static-site/./node_modules/uuid/dist/esm-browser/native.js","webpack://thinkmoney-static-site/./node_modules/uuid/dist/esm-browser/rng.js","webpack://thinkmoney-static-site/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://thinkmoney-static-site/./node_modules/uuid/dist/esm-browser/v4.js","webpack://thinkmoney-static-site/./node_modules/vfile-message/index.js","webpack://thinkmoney-static-site/./node_modules/vfile/index.js","webpack://thinkmoney-static-site/./node_modules/vfile/lib/core.js","webpack://thinkmoney-static-site/./node_modules/vfile/lib/index.js","webpack://thinkmoney-static-site/./node_modules/vfile/lib/minpath.browser.js","webpack://thinkmoney-static-site/./node_modules/vfile/lib/minproc.browser.js","webpack://thinkmoney-static-site/./node_modules/vfile/node_modules/is-buffer/index.js","webpack://thinkmoney-static-site/./node_modules/xtend/immutable.js","webpack://thinkmoney-static-site/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://thinkmoney-static-site/./node_modules/@babel/runtime/helpers/extends.js","webpack://thinkmoney-static-site/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://thinkmoney-static-site/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://thinkmoney-static-site/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://thinkmoney-static-site/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://thinkmoney-static-site/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://thinkmoney-static-site/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://thinkmoney-static-site/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://thinkmoney-static-site/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://thinkmoney-static-site/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://thinkmoney-static-site/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://thinkmoney-static-site/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://thinkmoney-static-site/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://thinkmoney-static-site/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://thinkmoney-static-site/./node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js","webpack://thinkmoney-static-site/./node_modules/embla-carousel/esm/embla-carousel.esm.js","webpack://thinkmoney-static-site/./node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js","webpack://thinkmoney-static-site/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://thinkmoney-static-site/./node_modules/gatsby-script/dist/index.modern.mjs"],"sourcesContent":["\"use strict\";\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","var Converter = require('./src/converter');\n\n/**\n * Function get source and destination alphabet and return convert function\n *\n * @param {string|Array} srcAlphabet\n * @param {string|Array} dstAlphabet\n *\n * @returns {function(number|Array)}\n */\nfunction anyBase(srcAlphabet, dstAlphabet) {\n var converter = new Converter(srcAlphabet, dstAlphabet);\n /**\n * Convert function\n *\n * @param {string|Array} number\n *\n * @return {string|Array} number\n */\n return function (number) {\n return converter.convert(number);\n }\n};\n\nanyBase.BIN = '01';\nanyBase.OCT = '01234567';\nanyBase.DEC = '0123456789';\nanyBase.HEX = '0123456789abcdef';\n\nmodule.exports = anyBase;","'use strict';\n\n/**\n * Converter\n *\n * @param {string|Array} srcAlphabet\n * @param {string|Array} dstAlphabet\n * @constructor\n */\nfunction Converter(srcAlphabet, dstAlphabet) {\n if (!srcAlphabet || !dstAlphabet || !srcAlphabet.length || !dstAlphabet.length) {\n throw new Error('Bad alphabet');\n }\n this.srcAlphabet = srcAlphabet;\n this.dstAlphabet = dstAlphabet;\n}\n\n/**\n * Convert number from source alphabet to destination alphabet\n *\n * @param {string|Array} number - number represented as a string or array of points\n *\n * @returns {string|Array}\n */\nConverter.prototype.convert = function(number) {\n var i, divide, newlen,\n numberMap = {},\n fromBase = this.srcAlphabet.length,\n toBase = this.dstAlphabet.length,\n length = number.length,\n result = typeof number === 'string' ? '' : [];\n\n if (!this.isValid(number)) {\n throw new Error('Number \"' + number + '\" contains of non-alphabetic digits (' + this.srcAlphabet + ')');\n }\n\n if (this.srcAlphabet === this.dstAlphabet) {\n return number;\n }\n\n for (i = 0; i < length; i++) {\n numberMap[i] = this.srcAlphabet.indexOf(number[i]);\n }\n do {\n divide = 0;\n newlen = 0;\n for (i = 0; i < length; i++) {\n divide = divide * fromBase + numberMap[i];\n if (divide >= toBase) {\n numberMap[newlen++] = parseInt(divide / toBase, 10);\n divide = divide % toBase;\n } else if (newlen > 0) {\n numberMap[newlen++] = 0;\n }\n }\n length = newlen;\n result = this.dstAlphabet.slice(divide, divide + 1).concat(result);\n } while (newlen !== 0);\n\n return result;\n};\n\n/**\n * Valid number with source alphabet\n *\n * @param {number} number\n *\n * @returns {boolean}\n */\nConverter.prototype.isValid = function(number) {\n var i = 0;\n for (; i < number.length; ++i) {\n if (this.srcAlphabet.indexOf(number[i]) === -1) {\n return false;\n }\n }\n return true;\n};\n\nmodule.exports = Converter;","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","module.exports = {\n \"version\": \"0.24.0\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","'use strict'\n\nmodule.exports = bail\n\nfunction bail(err) {\n if (err) {\n throw err\n }\n}\n","'use strict';\n\nconst preserveCamelCase = string => {\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 && /[a-zA-Z]/.test(character) && character.toUpperCase() === 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 && /[a-zA-Z]/.test(character) && character.toLowerCase() === 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 = character.toLowerCase() === character && character.toUpperCase() !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;\n\t\t}\n\t}\n\n\treturn string;\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 = Object.assign({\n\t\tpascalCase: false\n\t}, options);\n\n\tconst postProcess = x => options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x;\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\tif (input.length === 1) {\n\t\treturn options.pascalCase ? input.toUpperCase() : input.toLowerCase();\n\t}\n\n\tconst hasUpperCase = input !== input.toLowerCase();\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input);\n\t}\n\n\tinput = input\n\t\t.replace(/^[_.\\- ]+/, '')\n\t\t.toLowerCase()\n\t\t.replace(/[_.\\- ]+(\\w|$)/g, (_, p1) => p1.toUpperCase())\n\t\t.replace(/\\d+(\\w|$)/g, m => m.toUpperCase());\n\n\treturn postProcess(input);\n};\n\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;\n","'use strict'\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar comma = ','\nvar space = ' '\nvar empty = ''\n\n// Parse comma-separated tokens to an array.\nfunction parse(value) {\n var values = []\n var input = String(value || empty)\n var index = input.indexOf(comma)\n var lastIndex = 0\n var end = false\n var val\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n val = input.slice(lastIndex, index).trim()\n\n if (val || !end) {\n values.push(val)\n }\n\n lastIndex = index + 1\n index = input.indexOf(comma, lastIndex)\n }\n\n return values\n}\n\n// Compile an array to comma-separated tokens.\n// `options.padLeft` (default: `true`) pads a space left of each token, and\n// `options.padRight` (default: `false`) pads a space to the right of each token.\nfunction stringify(values, options) {\n var settings = options || {}\n var left = settings.padLeft === false ? empty : space\n var right = settings.padRight ? space : empty\n\n // Ensure the last empty entry is seen.\n if (values[values.length - 1] === empty) {\n values = values.concat(empty)\n }\n\n return values.join(right + comma + left).trim()\n}\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = filterInvalidDOMProps;\n\nvar _htmlAttributes = require(\"html-attributes\");\n\nvar _htmlAttributes2 = _interopRequireDefault(_htmlAttributes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eventProps = {\n\tonCopy: true,\n\tonCut: true,\n\tonPaste: true,\n\tonLoad: true,\n\tonError: true,\n\tonWheel: true,\n\tonScroll: true,\n\tonCompositionEnd: true,\n\tonCompositionStart: true,\n\tonCompositionUpdate: true,\n\tonKeyDown: true,\n\tonKeyPress: true,\n\tonKeyUp: true,\n\tonFocus: true,\n\tonBlur: true,\n\tonChange: true,\n\tonInput: true,\n\tonSubmit: true,\n\tonClick: true,\n\tonContextMenu: true,\n\tonDoubleClick: true,\n\tonDrag: true,\n\tonDragEnd: true,\n\tonDragEnter: true,\n\tonDragExit: true,\n\tonDragLeave: true,\n\tonDragOver: true,\n\tonDragStart: true,\n\tonDrop: true,\n\tonMouseDown: true,\n\tonMouseEnter: true,\n\tonMouseLeave: true,\n\tonMouseMove: true,\n\tonMouseOut: true,\n\tonMouseOver: true,\n\tonMouseUp: true,\n\tonSelect: true,\n\tonTouchCancel: true,\n\tonTouchEnd: true,\n\tonTouchMove: true,\n\tonTouchStart: true,\n\tonAnimationStart: true,\n\tonAnimationEnd: true,\n\tonAnimationIteration: true,\n\tonTransitionEnd: true\n};\n\nfunction isValidDOMProp(prop) {\n\treturn eventProps[prop] || _htmlAttributes2.default[prop] || /^(data|aria)-/.test(prop);\n}\n\nfunction filterInvalidDOMProps(props) {\n\tvar domProps = {};\n\tfor (var prop in props) {\n\t\tif (props.hasOwnProperty(prop) && isValidDOMProp(prop)) {\n\t\t\tdomProps[prop] = props[prop];\n\t\t}\n\t}\n\treturn domProps;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\n\n// TODO(v5): Remove legacy setting and default to \"always\"\nconst applyTrailingSlashOption = (input, option = `legacy`) => {\n const hasHtmlSuffix = input.endsWith(`.html`);\n const hasXmlSuffix = input.endsWith(`.xml`);\n const hasPdfSuffix = input.endsWith(`.pdf`);\n if (input === `/`) return input;\n\n if (hasHtmlSuffix || hasXmlSuffix || hasPdfSuffix) {\n option = `never`;\n }\n\n if (option === `always`) {\n return input.endsWith(`/`) ? input : `${input}/`;\n }\n\n if (option === `never`) {\n return input.endsWith(`/`) ? input.slice(0, -1) : input;\n }\n\n return input;\n};\n\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\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); }\n\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; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\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\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\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\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\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\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\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\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\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\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\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\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\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\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\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\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\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\nmodule.exports = Object.assign;\n//# sourceMappingURL=object-assign.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\n\nvar _gatsbyScript = require(\"gatsby-script\");\n\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n\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\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname)); // Clear scripts after we've used them to avoid leaky behavior\n\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\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.\n\n\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\n\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;\n\nvar _integration = require(\"@builder.io/partytown/integration\");\n\nvar _getForwards = require(\"./get-forwards\");\n\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\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n\n if (existingSnippet) {\n existingSnippet.remove();\n }\n\n if (existingSandbox) {\n existingSandbox.remove();\n }\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-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-blog-index-js\": () => import(\"./../../../src/pages/blog/index.js\" /* webpackChunkName: \"component---src-pages-blog-index-js\" */),\n \"component---src-pages-help-support-index-js\": () => import(\"./../../../src/pages/help-support/index.js\" /* webpackChunkName: \"component---src-pages-help-support-index-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-templates-blog-js\": () => import(\"./../../../src/templates/blog.js\" /* webpackChunkName: \"component---src-templates-blog-js\" */),\n \"component---src-templates-help-support-index-js\": () => import(\"./../../../src/templates/help-support/index.js\" /* webpackChunkName: \"component---src-templates-help-support-index-js\" */),\n \"component---src-templates-help-support-post-index-js\": () => import(\"./../../../src/templates/help-support-post/index.js\" /* webpackChunkName: \"component---src-templates-help-support-post-index-js\" */),\n \"component---src-templates-landing-js\": () => import(\"./../../../src/templates/landing.js\" /* webpackChunkName: \"component---src-templates-landing-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-styled-components/gatsby-browser.js'),\n options: {\"plugins\":[],\"displayName\":true,\"fileName\":true,\"minify\":true,\"namespace\":\"\",\"transpileTemplateLiterals\":true,\"topLevelImportPaths\":[],\"pure\":false,\"disableVendorPrefixes\":false},\n },{\n plugin: require('../node_modules/gatsby-background-image/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-anchor-links/gatsby-browser.js'),\n options: {\"plugins\":[],\"offset\":-100,\"delay\":500},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js'),\n options: {\"plugins\":[],\"id\":\"GTM-PBZQ2N\",\"includeInDevelopment\":true,\"defaultDataLayer\":{\"type\":\"object\",\"value\":{}},\"routeChangeEventName\":\"gatsby-route-change\",\"enableWebVitalsTracking\":false,\"selfHostedOrigin\":\"https://www.googletagmanager.com\"},\n },{\n plugin: require('../gatsby-browser.js'),\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","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/lib/utils\"\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","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nconst StaticQueryContext = React.createContext({})\nlet StaticQueryServerContext = null\nif (React.createServerContext) {\n StaticQueryServerContext = React.createServerContext(`StaticQuery`, {})\n}\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\n// TODO(v5): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\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 let context\n\n // Can we get a better check here?\n if (\n StaticQueryServerContext &&\n Object.keys(StaticQueryServerContext._currentValue).length\n ) {\n context = React.useContext(StaticQueryServerContext)\n } else {\n context = React.useContext(StaticQueryContext)\n }\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 {\n StaticQuery,\n StaticQueryContext,\n useStaticQuery,\n StaticQueryServerContext,\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 default as Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport {\n StaticQuery,\n StaticQueryContext,\n useStaticQuery,\n StaticQueryServerContext,\n} from \"./static-query\"\n\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 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\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 }\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.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 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 {\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 let inFlightPromise\n if (global.hasPartialHydration) {\n inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n this.loadPartialHydrationJson(pagePath),\n ]).then(([appData, { payload: pageData }, result]) => {\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n const finalResult = {}\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 const componentChunkPromise = this.loadComponent(\n pageData.componentChunkName,\n `head`\n ).then(head => {\n finalResult.createdAt = new Date()\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appData\n ? appData.webpackCompilationHash\n : ``,\n })\n\n const pageResources = toPageResources(pageData, null, head)\n\n if (result.payload && typeof result.payload === `string`) {\n pageResources.partialHydration = result.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(result.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 }\n\n // undefined if final result is an error\n return pageResources\n })\n\n // Necessary for head component\n const staticQueryBatchPromise = Promise.all(\n (pageData.staticQueryHashes || []).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([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = {\n ...pageResources,\n staticQueryResults: staticQueryResults,\n }\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 } else {\n inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\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 const componentChunkPromise = Promise.all([\n this.loadComponent(componentChunkName),\n this.loadComponent(componentChunkName, `head`),\n ]).then(([component, head]) => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component, head)\n }\n // undefined if final result is an error\n return pageResources\n })\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.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([componentChunkPromise, 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 // 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 // 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","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]\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 pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid\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.\n * @param {string} tagName\n */\nexport function warnForInvalidTags(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}`\n\n warnOnce(warning)\n }\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","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 { VALID_NODE_NAMES } from \"./constants\"\nimport {\n headExportValidator,\n filterHeadProps,\n warnForInvalidTags,\n diffNodes,\n} from \"./utils\"\n\nconst hiddenRoot = document.createElement(`div`)\n\nconst removePrevHeadElements = () => {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nconst onHeadRendered = () => {\n const validHeadNodes = []\n\n const seenIds = new Map()\n for (const node of hiddenRoot.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!VALID_NODE_NAMES.includes(nodeName)) {\n warnForInvalidTags(nodeName)\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // Create an element for scripts to make script work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n const script = document.createElement(`script`)\n for (const attr of clonedNode.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = clonedNode.innerHTML\n clonedNode = script\n }\n\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[indexOfPreviouslyInsertedNode].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n }\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 // We set up observer to be able to regenerate after react-refresh\n // updates our hidden element.\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 Head = pageComponent.Head\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 \n \n \n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\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 { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\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_EXPERIMENTAL_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(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.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 \"gatsby\"\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} 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 class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n if (pageResources.partialHydration) {\n return (\n \n {children}\n \n )\n } else {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\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","/* global HAS_REACT_18 */\n\nconst map = new WeakMap()\n\n/**\n * Since react 18, render and hydrate moved to react-dom/client\n * returns correct hydrate and render function based on installed react-dom version\n */\n\nexport function reactDOMUtils() {\n let render\n let hydrate\n\n if (HAS_REACT_18) {\n const reactDomClient = require(`react-dom/client`)\n\n 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 hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n } else {\n const reactDomClient = require(`react-dom`)\n render = reactDomClient.render\n hydrate = reactDomClient.hydrate\n }\n\n return { render, hydrate }\n}\n","exports.polyfill = Component => Component\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","/**\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 React = require('react');\nconst { ThemeProvider } = require('styled-components');\nconst { themeObj } = require('TMComponents/GlobalStyle');\nconst { Layout } = require('TMComponents/Layout');\nrequire('TMComponents/GlobalStyle/fonts/font.css');\n\n// eslint-disable-next-line react/prop-types\nexports.wrapRootElement = ({ element }) => (\n {element}\n);\n\n// eslint-disable-next-line react/prop-types\nexports.wrapPageElement = ({ element }) => {element};\n\nexports.onClientEntry = () => {\n // IntersectionObserver polyfill for gatsby-background-image (Safari, IE)\n if (!('IntersectionObserver' in window)) {\n // eslint-disable-next-line global-require\n require('intersection-observer');\n }\n};\n","'use strict';\n\nexports.onClientEntry = function (a, pluginOptions) {\n // Set chars to escape in classNames.\n if (pluginOptions.specialChars) {\n window._gbiSpecialChars = pluginOptions.specialChars;\n }\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _BackgroundUtils = _interopRequireDefault(require(\"./lib/BackgroundUtils\"));\n\nvar _HelperUtils = require(\"./lib/HelperUtils\");\n\nvar _ImageUtils = require(\"./lib/ImageUtils\");\n\nvar _ImageCache = require(\"./lib/ImageCache\");\n\nvar _ImageRef = require(\"./lib/ImageRef\");\n\nvar _ImageHandling = require(\"./lib/ImageHandling\");\n\nvar _StyleUtils = require(\"./lib/StyleUtils\");\n\nvar _StyleCreation = require(\"./lib/StyleCreation\");\n\nvar _IntersectionObserverUtils = require(\"./lib/IntersectionObserverUtils\");\n\nvar _SimpleUtils = require(\"./lib/SimpleUtils\");\n\nvar _excluded = [\"className\", \"style\", \"fluid\", \"fixed\", \"backgroundColor\", \"durationFadeIn\", \"Tag\", \"children\", \"keepStatic\"];\n\nvar BackgroundImage = function (_React$Component) {\n (0, _inheritsLoose2.default)(BackgroundImage, _React$Component);\n\n function BackgroundImage(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n\n _this.intersectionListener = function () {\n var imageInCache = (0, _ImageCache.inImageCache)(_this.props);\n\n if (!_this.state.isVisible && typeof _this.props.onStartLoad === \"function\") {\n _this.props.onStartLoad({\n wasCached: imageInCache\n });\n }\n\n _this.imageRef = (0, _ImageRef.activatePictureRef)(_this.imageRef, _this.props, _this.selfRef);\n\n _this.setState(function (state) {\n return {\n isVisible: true,\n imageState: state.imageState + 1\n };\n }, function () {\n _this.setState(function (state) {\n return {\n imgLoaded: imageInCache,\n imgCached: (0, _ImageRef.hasActivatedPictureRefs)(_this.imageRef),\n imageState: state.imageState + 1\n };\n });\n });\n };\n\n var convertedProps = (0, _HelperUtils.convertProps)(props);\n var isVisible = true;\n var imgLoaded = false;\n var IOSupported = false;\n var fadeIn = convertedProps.fadeIn;\n var seenBefore = (0, _ImageCache.inImageCache)(convertedProps);\n\n if (!seenBefore && (0, _SimpleUtils.isBrowser)() && window.IntersectionObserver) {\n isVisible = false;\n IOSupported = true;\n }\n\n if (!(0, _SimpleUtils.isBrowser)()) {\n isVisible = false;\n }\n\n if (convertedProps.critical) {\n isVisible = true;\n IOSupported = false;\n }\n\n var hasNoScript = !(convertedProps.critical && !fadeIn) && !(0, _SimpleUtils.isBrowser)();\n var imageState = 0;\n\n var _fixClassName = (0, _StyleUtils.fixClassName)(convertedProps),\n currentClassNames = _fixClassName[0];\n\n _this.backgroundStyles = (0, _StyleUtils.presetBackgroundStyles)((0, _BackgroundUtils.default)(convertedProps.className));\n _this.handleImageLoaded = _this.handleImageLoaded.bind((0, _assertThisInitialized2.default)(_this));\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n _this.imageRef = (0, _ImageRef.createPictureRef)((0, _extends2.default)({}, convertedProps, {\n isVisible: isVisible\n }), _this.handleImageLoaded);\n _this.selfRef = null;\n _this.state = {\n isVisible: isVisible,\n imgLoaded: imgLoaded,\n IOSupported: IOSupported,\n fadeIn: fadeIn,\n hasNoScript: hasNoScript,\n seenBefore: seenBefore,\n imageState: imageState,\n currentClassNames: currentClassNames\n };\n return _this;\n }\n\n var _proto = BackgroundImage.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.backgroundStyles = (0, _StyleUtils.presetBackgroundStyles)((0, _BackgroundUtils.default)(this.props.className));\n\n if (this.state.isVisible && typeof this.props.onStartLoad === \"function\") {\n this.props.onStartLoad({\n wasCached: (0, _ImageCache.inImageCache)(this.props)\n });\n }\n\n if (this.props.critical || this.state.seenBefore) {\n if ((0, _ImageRef.imageReferenceCompleted)(this.imageRef, this.props)) {\n this.handleImageLoaded();\n }\n }\n\n var _fixClassName2 = (0, _StyleUtils.fixClassName)(this.props),\n currentClassNames = _fixClassName2[0];\n\n this.setState({\n currentClassNames: currentClassNames\n });\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this2 = this;\n\n if ((0, _ImageUtils.imagePropsChanged)(this.props, prevProps)) {\n var convertedProps = (0, _HelperUtils.convertProps)(this.props);\n var imageInCache = (0, _ImageCache.inImageCache)(convertedProps);\n\n var _fixClassName3 = (0, _StyleUtils.fixClassName)(convertedProps),\n currentClassNames = _fixClassName3[0];\n\n this.setState({\n isVisible: imageInCache || convertedProps.critical,\n imgLoaded: imageInCache,\n seenBefore: imageInCache,\n currentClassNames: currentClassNames\n }, function () {\n _this2.bgImage = (0, _ImageUtils.getCurrentFromData)({\n data: _this2.imageRef,\n propName: \"currentSrc\",\n returnArray: true\n }) || (0, _ImageUtils.getCurrentFromData)({\n data: _this2.imageRef,\n propName: \"src\",\n returnArray: true\n });\n _this2.imageRef = (0, _ImageRef.createPictureRef)((0, _extends2.default)({}, convertedProps, {\n isVisible: _this2.state.isVisible\n }), _this2.handleImageLoaded);\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.imageRef) {\n if (Array.isArray(this.imageRef)) {\n this.imageRef.forEach(function (currentImageRef) {\n if (!!currentImageRef && !(0, _SimpleUtils.isString)(currentImageRef)) {\n currentImageRef.onload = null;\n }\n });\n } else {\n this.imageRef.onload = null;\n }\n }\n\n if (this.cleanUpListeners) {\n this.cleanUpListeners();\n }\n };\n\n _proto.handleRef = function handleRef(ref) {\n this.selfRef = ref;\n\n if (this.state.IOSupported && ref) {\n this.cleanUpListeners = (0, _IntersectionObserverUtils.listenToIntersections)(ref, this.intersectionListener, this.props.rootMargin);\n }\n };\n\n _proto.handleImageLoaded = function handleImageLoaded() {\n (0, _ImageCache.activateCacheForImage)(this.props);\n this.setState(function (state) {\n return {\n imgLoaded: true,\n imageState: state.imageState + 1\n };\n });\n\n if (this.state.seenBefore) {\n this.setState({\n fadeIn: false\n });\n }\n\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n };\n\n _proto.render = function render() {\n var _fixOpacity = (0, _StyleUtils.fixOpacity)((0, _HelperUtils.convertProps)(this.props), this.props.preserveStackingContext),\n className = _fixOpacity.className,\n _fixOpacity$style = _fixOpacity.style,\n style = _fixOpacity$style === void 0 ? {} : _fixOpacity$style,\n fluid = _fixOpacity.fluid,\n fixed = _fixOpacity.fixed,\n backgroundColor = _fixOpacity.backgroundColor,\n durationFadeIn = _fixOpacity.durationFadeIn,\n Tag = _fixOpacity.Tag,\n children = _fixOpacity.children,\n keepStatic = _fixOpacity.keepStatic,\n props = (0, _objectWithoutPropertiesLoose2.default)(_fixOpacity, _excluded);\n\n var remainingProps = (0, _HelperUtils.stripRemainingProps)(props);\n var bgColor = typeof backgroundColor === \"boolean\" ? \"lightgray\" : typeof backgroundColor !== \"undefined\" ? backgroundColor : \"\";\n var shouldFadeIn = this.state.fadeIn === true && !this.state.imgCached || this.props.fadeIn === \"soft\";\n var transitionDelay = shouldFadeIn ? durationFadeIn / 2 + \"ms\" : \"none\";\n var divStyle = (0, _extends2.default)({\n position: \"relative\"\n }, style);\n if (!this.props.preserveStackingContext) divStyle.opacity = 0.99;\n var image = (0, _ImageUtils.getCurrentSrcData)({\n fluid: fluid,\n fixed: fixed,\n returnArray: true\n });\n var noScriptImageData = (0, _ImageUtils.getCurrentSrcData)({\n fluid: fluid,\n fixed: fixed\n }) || {};\n\n if (fluid || fixed) {\n if (fixed) {\n divStyle.width = style.width || image.width;\n divStyle.height = style.height || image.height;\n divStyle.display = \"inline-block\";\n\n if (style.display === \"inherit\") {\n delete divStyle.display;\n }\n }\n } else if (keepStatic) {\n noScriptImageData.srcSet = '';\n } else {\n return null;\n }\n\n var newImageSettings = (0, _ImageHandling.switchImageSettings)({\n image: image,\n bgImage: this.bgImage,\n imageRef: this.imageRef,\n state: this.state\n });\n this.bgImage = newImageSettings.nextImageArray || newImageSettings.nextImage || this.bgImage;\n var pseudoStyles = (0, _StyleCreation.createPseudoStyles)((0, _extends2.default)({\n className: this.state.currentClassNames,\n transitionDelay: transitionDelay,\n bgColor: bgColor,\n backgroundStyles: this.backgroundStyles,\n style: style,\n fadeIn: shouldFadeIn\n }, newImageSettings, {\n originalData: fluid || fixed\n }));\n var noScriptPseudoStyles = (0, _StyleCreation.createNoScriptStyles)({\n image: image,\n bgColor: bgColor,\n className: this.state.currentClassNames,\n backgroundStyles: this.backgroundStyles,\n style: style\n });\n var componentKey = \"\" + (fluid ? \"fluid\" : \"\") + (fixed ? \"fixed\" : \"\") + \"-\" + JSON.stringify(noScriptImageData.srcSet);\n var currentStyles = (0, _extends2.default)({}, this.backgroundStyles, divStyle);\n return _react.default.createElement(Tag, (0, _extends2.default)({\n className: this.state.currentClassNames,\n style: currentStyles,\n ref: this.handleRef,\n key: componentKey\n }, remainingProps), _react.default.createElement(\"style\", {\n dangerouslySetInnerHTML: {\n __html: pseudoStyles\n }\n }), this.state.hasNoScript && _react.default.createElement(\"noscript\", null, _react.default.createElement(\"style\", {\n dangerouslySetInnerHTML: {\n __html: noScriptPseudoStyles\n }\n })), children);\n };\n\n return BackgroundImage;\n}(_react.default.Component);\n\nBackgroundImage.defaultProps = {\n critical: false,\n fadeIn: true,\n durationFadeIn: 500,\n Tag: \"div\",\n preserveStackingContext: false,\n rootMargin: \"200px\",\n keepStatic: false\n};\n\nvar fixedObject = _propTypes.default.shape({\n width: _propTypes.default.number.isRequired,\n height: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n srcAvif: _propTypes.default.string,\n srcSetAvif: _propTypes.default.string,\n media: _propTypes.default.string\n});\n\nvar fluidObject = _propTypes.default.shape({\n aspectRatio: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n sizes: _propTypes.default.string,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n srcAvif: _propTypes.default.string,\n srcSetAvif: _propTypes.default.string,\n media: _propTypes.default.string\n});\n\nBackgroundImage.propTypes = {\n fixed: _propTypes.default.oneOfType([fixedObject, _propTypes.default.arrayOf(fixedObject), _propTypes.default.arrayOf(_propTypes.default.oneOfType([fixedObject, _propTypes.default.string]))]),\n fluid: _propTypes.default.oneOfType([fluidObject, _propTypes.default.arrayOf(fluidObject), _propTypes.default.arrayOf(_propTypes.default.oneOfType([fluidObject, _propTypes.default.string]))]),\n fadeIn: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n durationFadeIn: _propTypes.default.number,\n className: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),\n critical: _propTypes.default.bool,\n crossOrigin: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n style: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.array]),\n backgroundColor: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n onLoad: _propTypes.default.func,\n onError: _propTypes.default.func,\n onStartLoad: _propTypes.default.func,\n Tag: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]),\n preserveStackingContext: _propTypes.default.bool,\n rootMargin: _propTypes.default.string,\n keepStatic: _propTypes.default.bool\n};\nvar _default = BackgroundImage;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.getStyleRulesForClassName = exports.getStyleRules = exports.getBackgroundStylesForSingleClass = exports.default = void 0;\n\nvar _SimpleUtils = require(\"./SimpleUtils\");\n\nvar getStyleRulesForClassName = function getStyleRulesForClassName(className) {\n var styleSheets = (0, _SimpleUtils.isBrowser)() ? window.document.styleSheets : [];\n\n for (var i = 0; i < styleSheets.length; i++) {\n var classes = void 0;\n\n try {\n classes = typeof styleSheets[i].rules !== 'undefined' ? styleSheets[i].rules : typeof styleSheets[i].cssRules !== 'undefined' ? styleSheets[i].cssRules : '';\n } catch (e) {}\n\n if (classes) {\n var foundClass = Array.prototype.slice.call(classes).reduce(function (foundAcc, styleRule) {\n if (styleRule.selectorText === className) {\n foundAcc.push(styleRule);\n }\n\n return foundAcc;\n }, []);\n\n if (foundClass.length) {\n return foundClass;\n }\n }\n }\n\n return [];\n};\n\nexports.getStyleRulesForClassName = getStyleRulesForClassName;\n\nvar getStyleRules = function getStyleRules(cssStyleRules) {\n var styles = {};\n\n if (cssStyleRules.length > 0 && typeof cssStyleRules[0].style !== 'undefined') {\n var constructorName = cssStyleRules[0].style.constructor.name || cssStyleRules[0].style.constructor.toString();\n\n switch (constructorName) {\n case 'CSS2Properties':\n case '[object MSStyleCSSProperties]':\n Object.values(cssStyleRules[0].style).forEach(function (prop) {\n styles[(0, _SimpleUtils.toCamelCase)(prop)] = cssStyleRules[0].style[prop];\n });\n break;\n\n case 'CSSStyleDeclaration':\n styles = cssStyleRules[0].style;\n break;\n\n default:\n console.error('Unknown style object prototype');\n break;\n }\n }\n\n return styles;\n};\n\nexports.getStyleRules = getStyleRules;\n\nvar getBackgroundStylesForSingleClass = function getBackgroundStylesForSingleClass(className) {\n if (className && (0, _SimpleUtils.isString)(className)) {\n var cssStyleRules = getStyleRulesForClassName(\".\" + className);\n\n if ((cssStyleRules === null || cssStyleRules === void 0 ? void 0 : cssStyleRules.length) > 0 && typeof cssStyleRules[0].style !== 'undefined') {\n return Object.keys(getStyleRules(cssStyleRules)).filter(function (key) {\n return key.indexOf('background') === 0 && cssStyleRules[0].style[key] !== '';\n }).reduce(function (newData, key) {\n newData[(0, _SimpleUtils.toCamelCase)(key)] = cssStyleRules[0].style[key];\n return newData;\n }, {});\n }\n }\n\n return {};\n};\n\nexports.getBackgroundStylesForSingleClass = getBackgroundStylesForSingleClass;\n\nvar getBackgroundStyles = function getBackgroundStyles(className) {\n if ((0, _SimpleUtils.isBrowser)()) {\n var classes = (0, _SimpleUtils.stringToArray)(className);\n\n if (classes instanceof Array) {\n var classObjects = [];\n classes.forEach(function (item) {\n return classObjects.push(getBackgroundStylesForSingleClass(item));\n });\n return Object.assign.apply(Object, classObjects);\n }\n\n return getBackgroundStylesForSingleClass(className);\n }\n\n return {};\n};\n\nvar _default = getBackgroundStyles;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.resetComponentClassCache = exports.inComponentClassCache = exports.activateCacheForComponentClass = void 0;\nvar componentClassCache = Object.create({});\n\nvar inComponentClassCache = function inComponentClassCache(className) {\n return componentClassCache[className] || false;\n};\n\nexports.inComponentClassCache = inComponentClassCache;\n\nvar activateCacheForComponentClass = function activateCacheForComponentClass(className) {\n if (className) {\n componentClassCache[className] = true;\n }\n};\n\nexports.activateCacheForComponentClass = activateCacheForComponentClass;\n\nvar resetComponentClassCache = function resetComponentClassCache() {\n for (var className in componentClassCache) {\n delete componentClassCache[className];\n }\n};\n\nexports.resetComponentClassCache = resetComponentClassCache;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.stripRemainingProps = exports.convertProps = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _filterInvalidDomProps = _interopRequireDefault(require(\"filter-invalid-dom-props\"));\n\nvar _MediaUtils = require(\"./MediaUtils\");\n\nvar stripRemainingProps = function stripRemainingProps(props) {\n return (0, _filterInvalidDomProps.default)(props);\n};\n\nexports.stripRemainingProps = stripRemainingProps;\n\nvar convertProps = function convertProps(props) {\n var convertedProps = (0, _extends2.default)({}, props);\n var fixed = convertedProps.fixed,\n fluid = convertedProps.fluid;\n\n if (fluid && (0, _MediaUtils.hasArtDirectionSupport)(props, 'fluid')) {\n convertedProps.fluid = (0, _MediaUtils.groupByMedia)(convertedProps.fluid);\n }\n\n if (fixed && (0, _MediaUtils.hasArtDirectionSupport)(props, 'fixed')) {\n convertedProps.fixed = (0, _MediaUtils.groupByMedia)(convertedProps.fixed);\n }\n\n return convertedProps;\n};\n\nexports.convertProps = convertProps;","\"use strict\";\n\nexports.__esModule = true;\nexports.resetImageCache = exports.inImageCache = exports.allInImageCache = exports.activateCacheForMultipleImages = exports.activateCacheForImage = void 0;\n\nvar _HelperUtils = require(\"./HelperUtils\");\n\nvar _MediaUtils = require(\"./MediaUtils\");\n\nvar _ImageUtils = require(\"./ImageUtils\");\n\nvar _SimpleUtils = require(\"./SimpleUtils\");\n\nvar imageCache = Object.create({});\n\nvar inImageCache = function inImageCache(props, index, isLoop) {\n if (index === void 0) {\n index = 0;\n }\n\n if (isLoop === void 0) {\n isLoop = false;\n }\n\n var convertedProps = (0, _HelperUtils.convertProps)(props);\n var isImageStack = (0, _ImageUtils.hasImageArray)(convertedProps) && !(0, _MediaUtils.hasArtDirectionArray)(convertedProps);\n\n if (isImageStack && !isLoop) {\n return allInImageCache(props);\n }\n\n var src = isImageStack ? (0, _ImageUtils.getSelectedImage)(convertedProps, index) : (0, _ImageUtils.getImageSrcKey)(convertedProps);\n\n if ((0, _SimpleUtils.isObject)(src)) {\n var objectSrc = (0, _ImageUtils.getImageSrcKey)({\n fluid: src,\n fixed: src\n });\n return imageCache[objectSrc] || false;\n }\n\n return imageCache[src] || false;\n};\n\nexports.inImageCache = inImageCache;\n\nvar allInImageCache = function allInImageCache(props) {\n var convertedProps = (0, _HelperUtils.convertProps)(props);\n var imageStack = convertedProps.fluid || convertedProps.fixed;\n return imageStack.every(function (imageData, index) {\n return inImageCache(convertedProps, index, true);\n });\n};\n\nexports.allInImageCache = allInImageCache;\n\nvar activateCacheForImage = function activateCacheForImage(props, index, isLoop) {\n if (index === void 0) {\n index = 0;\n }\n\n if (isLoop === void 0) {\n isLoop = false;\n }\n\n var convertedProps = (0, _HelperUtils.convertProps)(props);\n var isImageStack = (0, _ImageUtils.hasImageArray)(convertedProps) && !(0, _MediaUtils.hasArtDirectionArray)(convertedProps);\n\n if (isImageStack && !isLoop) {\n return activateCacheForMultipleImages(props);\n }\n\n var src = isImageStack ? (0, _ImageUtils.getSelectedImage)(convertedProps, index) : (0, _ImageUtils.getImageSrcKey)(convertedProps);\n\n if (src) {\n if ((0, _SimpleUtils.isObject)(src)) {\n var objectSrc = (0, _ImageUtils.getImageSrcKey)({\n fluid: src,\n fixed: src\n });\n imageCache[objectSrc] = true;\n } else {\n imageCache[src] = true;\n }\n }\n};\n\nexports.activateCacheForImage = activateCacheForImage;\n\nvar activateCacheForMultipleImages = function activateCacheForMultipleImages(props) {\n var convertedProps = (0, _HelperUtils.convertProps)(props);\n var imageStack = convertedProps.fluid || convertedProps.fixed;\n imageStack.forEach(function (imageData, index) {\n return activateCacheForImage(convertedProps, index, true);\n });\n};\n\nexports.activateCacheForMultipleImages = activateCacheForMultipleImages;\n\nvar resetImageCache = function resetImageCache() {\n for (var prop in imageCache) {\n delete imageCache[prop];\n }\n};\n\nexports.resetImageCache = resetImageCache;","\"use strict\";\n\nexports.__esModule = true;\nexports.switchImageSettings = void 0;\n\nvar _ImageUtils = require(\"./ImageUtils\");\n\nvar _MediaUtils = require(\"./MediaUtils\");\n\nvar _SimpleUtils = require(\"./SimpleUtils\");\n\nvar switchImageSettings = function switchImageSettings(_ref) {\n var image = _ref.image,\n bgImage = _ref.bgImage,\n imageRef = _ref.imageRef,\n state = _ref.state;\n var currentSources = (0, _ImageUtils.getCurrentFromData)({\n data: imageRef,\n propName: \"currentSrc\"\n });\n var returnArray = Array.isArray(image) && !(0, _MediaUtils.hasArtDirectionArray)({\n fluid: image\n });\n var lastImage = Array.isArray(bgImage) ? (0, _SimpleUtils.filteredJoin)(bgImage) : bgImage;\n var nextImage;\n var nextImageArray;\n var finalImage = returnArray && state.seenBefore && !!currentSources;\n\n if (returnArray) {\n if (!currentSources) {\n nextImage = (0, _ImageUtils.getCurrentFromData)({\n data: image,\n propName: \"tracedSVG\",\n returnArray: returnArray\n });\n nextImage = (0, _SimpleUtils.combineArray)((0, _ImageUtils.getCurrentFromData)({\n data: image,\n propName: \"base64\",\n returnArray: returnArray\n }), nextImage);\n }\n\n nextImage = (0, _SimpleUtils.combineArray)((0, _ImageUtils.getCurrentFromData)({\n data: image,\n propName: \"CSS_STRING\",\n addUrl: false,\n returnArray: returnArray\n }), nextImage);\n\n if ((state.imgLoaded || !!currentSources) && state.isVisible) {\n if (currentSources) {\n nextImage = (0, _SimpleUtils.combineArray)((0, _ImageUtils.getCurrentFromData)({\n data: imageRef,\n propName: \"currentSrc\",\n returnArray: returnArray\n }), nextImage);\n finalImage = true;\n } else {\n nextImage = (0, _SimpleUtils.combineArray)((0, _ImageUtils.getCurrentFromData)({\n data: imageRef,\n propName: \"src\",\n returnArray: returnArray\n }), nextImage);\n finalImage = true;\n }\n }\n\n nextImage = (0, _SimpleUtils.combineArray)(nextImage, bgImage);\n var dummyArray = (0, _ImageUtils.createDummyImageArray)(image.length);\n nextImage = (0, _SimpleUtils.combineArray)(nextImage, dummyArray);\n nextImageArray = nextImage;\n nextImage = (0, _SimpleUtils.filteredJoin)(nextImage);\n } else {\n nextImage = \"\";\n nextImage = (0, _ImageUtils.getCurrentFromData)({\n data: image,\n propName: \"tracedSVG\"\n }) || (0, _ImageUtils.getCurrentFromData)({\n data: image,\n propName: \"base64\"\n });\n\n if (state.imgLoaded && state.isVisible) {\n nextImage = currentSources;\n finalImage = true;\n }\n }\n\n var afterOpacity = state.imageState % 2;\n\n if (!returnArray && nextImage === \"\" && state.imgLoaded && state.isVisible && imageRef && !imageRef.currentSrc) {\n nextImage = (0, _ImageUtils.getCurrentFromData)({\n data: imageRef,\n propName: \"src\",\n checkLoaded: false\n });\n finalImage = true;\n }\n\n if (!nextImage) nextImage = lastImage;\n var newImageSettings = {\n lastImage: lastImage,\n nextImage: nextImage,\n afterOpacity: afterOpacity,\n finalImage: finalImage\n };\n if (nextImageArray) newImageSettings.nextImageArray = nextImageArray;\n return newImageSettings;\n};\n\nexports.switchImageSettings = switchImageSettings;","\"use strict\";\n\nexports.__esModule = true;\nexports.imageReferenceCompleted = exports.hasPictureRef = exports.hasActivatedPictureRefs = exports.createPictureRef = exports.createMultiplePictureRefs = exports.activatePictureRef = exports.activateMultiplePictureRefs = void 0;\n\nvar _HelperUtils = require(\"./HelperUtils\");\n\nvar _ImageUtils = require(\"./ImageUtils\");\n\nvar _MediaUtils = require(\"./MediaUtils\");\n\nvar _SimpleUtils = require(\"./SimpleUtils\");\n\nvar _ImageCache = require(\"./ImageCache\");\n\nvar createPictureRef = function createPictureRef(props, onLoad, index, isLoop) {\n if (isLoop === void 0) {\n isLoop = false;\n }\n\n var convertedProps = (0, _HelperUtils.convertProps)(props);\n\n if ((0, _SimpleUtils.isBrowser)() && (typeof convertedProps.fluid !== \"undefined\" || typeof convertedProps.fixed !== \"undefined\")) {\n var isImageStack = (0, _ImageUtils.hasImageArray)(convertedProps) && !(0, _MediaUtils.hasArtDirectionArray)(convertedProps);\n\n if (isImageStack && !isLoop) {\n return createMultiplePictureRefs(props, onLoad);\n }\n\n var img = new Image();\n\n img.onload = function () {\n return onLoad();\n };\n\n if (!img.complete && typeof convertedProps.onLoad === \"function\") {\n img.addEventListener('load', convertedProps.onLoad);\n }\n\n if (typeof convertedProps.onError === \"function\") {\n img.addEventListener('error', convertedProps.onError);\n }\n\n if (convertedProps.crossOrigin) {\n img.crossOrigin = convertedProps.crossOrigin;\n }\n\n if ((convertedProps.critical || convertedProps.isVisible) && !isLoop) {\n return activatePictureRef(img, convertedProps, index, isLoop);\n }\n\n return img;\n }\n\n return null;\n};\n\nexports.createPictureRef = createPictureRef;\n\nvar createMultiplePictureRefs = function createMultiplePictureRefs(props, onLoad) {\n var convertedProps = (0, _HelperUtils.convertProps)(props);\n var imageStack = convertedProps.fluid || convertedProps.fixed;\n var imageRefs = imageStack.map(function (imageData, index) {\n return createPictureRef(convertedProps, onLoad, index, true);\n });\n\n if (convertedProps.critical || convertedProps.isVisible) {\n return activatePictureRef(imageRefs, convertedProps);\n }\n\n return imageRefs;\n};\n\nexports.createMultiplePictureRefs = createMultiplePictureRefs;\n\nvar activatePictureRef = function activatePictureRef(imageRef, props, selfRef, index, isLoop) {\n if (selfRef === void 0) {\n selfRef = null;\n }\n\n if (index === void 0) {\n index = 0;\n }\n\n if (isLoop === void 0) {\n isLoop = false;\n }\n\n var convertedProps = (0, _HelperUtils.convertProps)(props);\n\n if ((0, _SimpleUtils.isBrowser)() && (typeof convertedProps.fluid !== \"undefined\" || typeof convertedProps.fixed !== \"undefined\")) {\n var isImageStack = (0, _ImageUtils.hasImageArray)(convertedProps) && !(0, _MediaUtils.hasArtDirectionArray)(convertedProps);\n\n if (isImageStack && !isLoop) {\n return activateMultiplePictureRefs(imageRef, props, selfRef);\n }\n\n var bodyClone = document.createElement('body');\n var imageData = isImageStack ? (0, _ImageUtils.getSelectedImage)(convertedProps, index) : (0, _ImageUtils.getCurrentSrcData)(convertedProps);\n\n if (!imageData) {\n return null;\n }\n\n if ((0, _SimpleUtils.isString)(imageData)) {\n return imageData;\n }\n\n if (selfRef) {\n imageRef.width = selfRef.offsetWidth;\n imageRef.height = selfRef.offsetHeight;\n }\n\n if ((0, _ImageUtils.hasPictureElement)()) {\n var pic = document.createElement('picture');\n\n if (selfRef) {\n pic.width = imageRef.width;\n pic.height = imageRef.height;\n }\n\n if ((0, _MediaUtils.hasArtDirectionArray)(convertedProps)) {\n var sources = (0, _MediaUtils.createArtDirectionSources)(convertedProps).reverse();\n sources.forEach(function (currentSource) {\n return pic.appendChild(currentSource);\n });\n }\n\n var sourcesAvif = (0, _MediaUtils.createSourceElementForSrcSet)(imageData, 'avif');\n sourcesAvif && pic.appendChild(sourcesAvif);\n var sourcesWebp = (0, _MediaUtils.createSourceElementForSrcSet)(imageData, 'webp');\n sourcesWebp && pic.appendChild(sourcesWebp);\n pic.appendChild(imageRef);\n bodyClone.appendChild(pic);\n }\n\n imageRef.sizes = imageData.sizes || \"\";\n imageRef.srcset = imageData.srcSet || \"\";\n imageRef.src = imageData.src || \"\";\n return imageRef;\n }\n\n return null;\n};\n\nexports.activatePictureRef = activatePictureRef;\n\nvar activateMultiplePictureRefs = function activateMultiplePictureRefs(imageRefs, props, selfRef) {\n return imageRefs.map(function (imageRef, index) {\n return activatePictureRef(imageRef, props, selfRef, index, true);\n });\n};\n\nexports.activateMultiplePictureRefs = activateMultiplePictureRefs;\n\nvar hasActivatedPictureRefs = function hasActivatedPictureRefs(imageRefs) {\n return Array.isArray(imageRefs) ? imageRefs.every(function (imageRef) {\n return hasPictureRef(imageRef);\n }) : hasPictureRef(imageRefs);\n};\n\nexports.hasActivatedPictureRefs = hasActivatedPictureRefs;\n\nvar hasPictureRef = function hasPictureRef(imageRef) {\n return (0, _SimpleUtils.isString)(imageRef) || !!imageRef && !!imageRef.currentSrc;\n};\n\nexports.hasPictureRef = hasPictureRef;\n\nvar imageReferenceCompleted = function imageReferenceCompleted(imageRef, props) {\n return imageRef ? Array.isArray(imageRef) ? imageRef.every(function (singleImageRef) {\n return (0, _ImageUtils.imageLoaded)(singleImageRef);\n }) || (0, _ImageCache.inImageCache)(props) : (0, _ImageUtils.imageLoaded)(imageRef) || (0, _ImageCache.inImageCache)(props) : (0, _SimpleUtils.isString)(imageRef);\n};\n\nexports.imageReferenceCompleted = imageReferenceCompleted;","\"use strict\";\n\nexports.__esModule = true;\nexports.isBase64 = exports.imagePropsChanged = exports.imageLoaded = exports.imageArrayPropsChanged = exports.hasPictureElement = exports.hasImageUrl = exports.hasImageArray = exports.getUrlString = exports.getSelectedImage = exports.getImageSrcKey = exports.getCurrentSrcData = exports.getCurrentFromData = exports.createDummyImageArray = void 0;\n\nvar _MediaUtils = require(\"./MediaUtils\");\n\nvar _SimpleUtils = require(\"./SimpleUtils\");\n\nvar hasPictureElement = function hasPictureElement() {\n return typeof HTMLPictureElement !== \"undefined\" || (0, _SimpleUtils.isBrowser)();\n};\n\nexports.hasPictureElement = hasPictureElement;\n\nvar hasImageArray = function hasImageArray(props) {\n return Boolean(props.fluid && Array.isArray(props.fluid) || props.fixed && Array.isArray(props.fixed));\n};\n\nexports.hasImageArray = hasImageArray;\n\nvar getCurrentFromData = function getCurrentFromData(_ref) {\n var data = _ref.data,\n propName = _ref.propName,\n _ref$addUrl = _ref.addUrl,\n addUrl = _ref$addUrl === void 0 ? true : _ref$addUrl,\n _ref$returnArray = _ref.returnArray,\n returnArray = _ref$returnArray === void 0 ? false : _ref$returnArray,\n _ref$checkLoaded = _ref.checkLoaded,\n checkLoaded = _ref$checkLoaded === void 0 ? true : _ref$checkLoaded;\n if (!data || !propName) return \"\";\n var tracedSVG = propName === \"tracedSVG\";\n\n if (Array.isArray(data) && !(0, _MediaUtils.hasArtDirectionArray)({\n fluid: data\n })) {\n var imageString = data.map(function (dataElement) {\n if (propName === \"currentSrc\" || propName === 'src') {\n return checkLoaded ? imageLoaded(dataElement) && dataElement[propName] || \"\" : dataElement[propName];\n }\n\n if (propName === \"CSS_STRING\" && (0, _SimpleUtils.isString)(dataElement)) {\n return dataElement;\n }\n\n return (0, _SimpleUtils.isString)(dataElement) ? dataElement : dataElement && propName in dataElement ? dataElement[propName] : \"\";\n });\n return getUrlString({\n imageString: imageString,\n tracedSVG: tracedSVG,\n addUrl: addUrl,\n returnArray: returnArray\n });\n }\n\n if ((0, _MediaUtils.hasArtDirectionArray)({\n fluid: data\n }) && (propName === \"currentSrc\" || propName === \"src\" || propName === \"base64\" || tracedSVG)) {\n var currentData = getCurrentSrcData({\n fluid: data\n });\n return propName in currentData ? getUrlString({\n imageString: currentData[propName],\n tracedSVG: tracedSVG,\n addUrl: addUrl\n }) : \"\";\n }\n\n if (typeof data !== 'object') {\n return '';\n }\n\n if ((propName === \"currentSrc\" || propName === 'src') && propName in data) {\n return getUrlString({\n imageString: checkLoaded ? imageLoaded(data) && data[propName] || \"\" : data[propName],\n addUrl: addUrl\n });\n }\n\n return propName in data ? getUrlString({\n imageString: data[propName],\n tracedSVG: tracedSVG,\n addUrl: addUrl\n }) : \"\";\n};\n\nexports.getCurrentFromData = getCurrentFromData;\n\nvar getImageSrcKey = function getImageSrcKey(_ref2) {\n var fluid = _ref2.fluid,\n fixed = _ref2.fixed;\n var data = getCurrentSrcData({\n fluid: fluid,\n fixed: fixed\n });\n return data ? data.src || null : null;\n};\n\nexports.getImageSrcKey = getImageSrcKey;\n\nvar getCurrentSrcData = function getCurrentSrcData(_ref3, index) {\n var fluid = _ref3.fluid,\n fixed = _ref3.fixed,\n returnArray = _ref3.returnArray;\n\n if (index === void 0) {\n index = 0;\n }\n\n var currentData = fluid || fixed;\n\n if (hasImageArray({\n fluid: fluid,\n fixed: fixed\n })) {\n if (returnArray) {\n return currentData;\n }\n\n if ((0, _SimpleUtils.isBrowser)() && (0, _MediaUtils.hasArtDirectionArray)({\n fluid: fluid,\n fixed: fixed\n })) {\n var mediaData = currentData.slice().reverse();\n var foundMedia = mediaData.findIndex(_MediaUtils.matchesMedia);\n\n if (foundMedia !== -1) {\n return mediaData[foundMedia];\n }\n }\n\n return currentData[index];\n }\n\n return currentData;\n};\n\nexports.getCurrentSrcData = getCurrentSrcData;\n\nvar getSelectedImage = function getSelectedImage(_ref4, index) {\n var fluid = _ref4.fluid,\n fixed = _ref4.fixed;\n\n if (index === void 0) {\n index = 0;\n }\n\n var currentData = fluid || fixed;\n\n if (hasImageArray({\n fluid: fluid,\n fixed: fixed\n })) {\n return currentData[index] || currentData[0];\n }\n\n return currentData;\n};\n\nexports.getSelectedImage = getSelectedImage;\n\nvar getUrlString = function getUrlString(_ref5) {\n var imageString = _ref5.imageString,\n _ref5$tracedSVG = _ref5.tracedSVG,\n tracedSVG = _ref5$tracedSVG === void 0 ? false : _ref5$tracedSVG,\n _ref5$addUrl = _ref5.addUrl,\n addUrl = _ref5$addUrl === void 0 ? true : _ref5$addUrl,\n _ref5$returnArray = _ref5.returnArray,\n returnArray = _ref5$returnArray === void 0 ? false : _ref5$returnArray,\n _ref5$hasImageUrls = _ref5.hasImageUrls,\n hasImageUrls = _ref5$hasImageUrls === void 0 ? false : _ref5$hasImageUrls;\n\n if (Array.isArray(imageString)) {\n var stringArray = imageString.map(function (currentString) {\n if (currentString) {\n var _base = isBase64(currentString);\n\n var _imageUrl = hasImageUrls || hasImageUrl(currentString);\n\n var currentReturnString = currentString && tracedSVG ? \"\\\"\" + currentString + \"\\\"\" : currentString && !_base && !tracedSVG && _imageUrl ? \"'\" + currentString + \"'\" : currentString;\n return addUrl && currentString ? \"url(\" + currentReturnString + \")\" : currentReturnString;\n }\n\n return currentString;\n });\n return returnArray ? stringArray : (0, _SimpleUtils.filteredJoin)(stringArray);\n }\n\n var base64 = isBase64(imageString);\n var imageUrl = hasImageUrls || hasImageUrl(imageString);\n var returnString = imageString && tracedSVG ? \"\\\"\" + imageString + \"\\\"\" : imageString && !base64 && !tracedSVG && imageUrl ? \"'\" + imageString + \"'\" : imageString;\n return imageString ? addUrl ? \"url(\" + returnString + \")\" : returnString : \"\";\n};\n\nexports.getUrlString = getUrlString;\n\nvar isBase64 = function isBase64(base64String) {\n return (0, _SimpleUtils.isString)(base64String) && base64String.indexOf(\"base64\") !== -1;\n};\n\nexports.isBase64 = isBase64;\n\nvar hasImageUrl = function hasImageUrl(imageString) {\n return (0, _SimpleUtils.isString)(imageString) && imageString.substr(0, 4) === \"http\";\n};\n\nexports.hasImageUrl = hasImageUrl;\n\nvar imagePropsChanged = function imagePropsChanged(props, prevProps) {\n return props.fluid && !prevProps.fluid || props.fixed && !prevProps.fixed || imageArrayPropsChanged(props, prevProps) || props.fluid && prevProps.fluid && props.fluid.src !== prevProps.fluid.src || props.fixed && prevProps.fixed && props.fixed.src !== prevProps.fixed.src;\n};\n\nexports.imagePropsChanged = imagePropsChanged;\n\nvar imageArrayPropsChanged = function imageArrayPropsChanged(props, prevProps) {\n var isPropsFluidArray = Array.isArray(props.fluid);\n var isPrevPropsFluidArray = Array.isArray(prevProps.fluid);\n var isPropsFixedArray = Array.isArray(props.fixed);\n var isPrevPropsFixedArray = Array.isArray(prevProps.fixed);\n\n if (isPropsFluidArray && !isPrevPropsFluidArray || isPropsFixedArray && !isPrevPropsFixedArray || !isPropsFluidArray && isPrevPropsFluidArray || !isPropsFixedArray && isPrevPropsFixedArray) {\n return true;\n }\n\n if (isPropsFluidArray && isPrevPropsFluidArray) {\n if (props.fluid.length === prevProps.fluid.length) {\n return props.fluid.some(function (image, index) {\n return image.src !== prevProps.fluid[index].src;\n });\n }\n\n return true;\n }\n\n if (isPropsFixedArray && isPrevPropsFixedArray) {\n if (props.fixed.length === prevProps.fixed.length) {\n return props.fixed.some(function (image, index) {\n return image.src !== prevProps.fixed[index].src;\n });\n }\n\n return true;\n }\n};\n\nexports.imageArrayPropsChanged = imageArrayPropsChanged;\n\nvar createDummyImageArray = function createDummyImageArray(length) {\n var DUMMY_IMG = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n var dummyImageURI = getUrlString({\n imageString: DUMMY_IMG\n });\n return Array(length).fill(dummyImageURI);\n};\n\nexports.createDummyImageArray = createDummyImageArray;\n\nvar imageLoaded = function imageLoaded(imageRef) {\n return imageRef ? (0, _SimpleUtils.isString)(imageRef) || imageRef.complete && imageRef.naturalWidth !== 0 && imageRef.naturalHeight !== 0 : false;\n};\n\nexports.imageLoaded = imageLoaded;","\"use strict\";\n\nexports.__esModule = true;\nexports.listenToIntersections = exports.getIO = exports.callbackIO = void 0;\n\nvar _SimpleUtils = require(\"./SimpleUtils\");\n\nvar io;\nvar listeners = new WeakMap();\n\nvar callbackIO = function callbackIO(entries) {\n entries.forEach(function (entry) {\n if (listeners.has(entry.target)) {\n var callback = listeners.get(entry.target);\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(entry.target);\n listeners.delete(entry.target);\n callback();\n }\n }\n });\n};\n\nexports.callbackIO = callbackIO;\n\nvar getIO = function getIO(rootMargin) {\n if (typeof io === \"undefined\" && (0, _SimpleUtils.isBrowser)() && window.IntersectionObserver) {\n io = new window.IntersectionObserver(callbackIO, {\n rootMargin: rootMargin\n });\n }\n\n return io;\n};\n\nexports.getIO = getIO;\n\nvar listenToIntersections = function listenToIntersections(element, callback, rootMargin) {\n if (rootMargin === void 0) {\n rootMargin = \"200px\";\n }\n\n var observer = getIO(rootMargin);\n\n if (observer) {\n observer.observe(element);\n listeners.set(element, callback);\n return function () {\n observer.unobserve(element);\n listeners.delete(element);\n };\n }\n\n return function () {};\n};\n\nexports.listenToIntersections = listenToIntersections;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.matchesMedia = exports.hasArtDirectionSupport = exports.hasArtDirectionArray = exports.groupByMedia = exports.createSourceElementForSrcSet = exports.createArtDirectionSources = void 0;\n\nvar _sortMediaQueries = _interopRequireDefault(require(\"sort-media-queries\"));\n\nvar _SimpleUtils = require(\"./SimpleUtils\");\n\nvar groupByMedia = function groupByMedia(imageVariants) {\n var without = [];\n var sortedVariants = (0, _sortMediaQueries.default)(imageVariants, 'media');\n sortedVariants.forEach(function (variant) {\n return !variant.media && without.push(variant);\n });\n\n if (without.length > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"We've found \" + without.length + \" sources without a media property. They might be ignored by the browser, see: https://www.gatsbyjs.org/packages/gatsby-image/#art-directing-multiple-images\");\n }\n\n return sortedVariants;\n};\n\nexports.groupByMedia = groupByMedia;\n\nvar createSourceElementForSrcSet = function createSourceElementForSrcSet(image, type) {\n var source = document.createElement('source');\n var srcSetName = \"srcSet\" + (0, _SimpleUtils.capitalize)(type);\n\n if (srcSetName in image) {\n source.type = \"image/\" + type;\n source.srcset = image[srcSetName];\n }\n\n if (image.sizes) {\n source.sizes = image.sizes;\n }\n\n if (image.media) {\n source.media = image.media;\n }\n\n return source.srcset ? source : null;\n};\n\nexports.createSourceElementForSrcSet = createSourceElementForSrcSet;\n\nvar createArtDirectionSources = function createArtDirectionSources(_ref) {\n var fluid = _ref.fluid,\n fixed = _ref.fixed;\n var currentSource = fluid || fixed;\n return currentSource.reduce(function (sources, image) {\n if (!image.media) {\n return sources;\n }\n\n var sourceWebp = createSourceElementForSrcSet(image, 'webp');\n var sourceAvif = createSourceElementForSrcSet(image, 'avif');\n sourceWebp && sources.push(sourceWebp);\n sourceAvif && sources.push(sourceAvif);\n return sources;\n }, []);\n};\n\nexports.createArtDirectionSources = createArtDirectionSources;\n\nvar hasArtDirectionSupport = function hasArtDirectionSupport(props, prop) {\n return props[prop] && Array.isArray(props[prop]) && props[prop].some(function (image) {\n return !!image && typeof image.media !== 'undefined';\n });\n};\n\nexports.hasArtDirectionSupport = hasArtDirectionSupport;\n\nvar hasArtDirectionArray = function hasArtDirectionArray(props) {\n return hasArtDirectionSupport(props, 'fluid') || hasArtDirectionSupport(props, 'fixed');\n};\n\nexports.hasArtDirectionArray = hasArtDirectionArray;\n\nvar matchesMedia = function matchesMedia(_ref2) {\n var media = _ref2.media;\n return media ? (0, _SimpleUtils.isBrowser)() && typeof window.matchMedia !== \"undefined\" && !!window.matchMedia(media).matches : false;\n};\n\nexports.matchesMedia = matchesMedia;","\"use strict\";\n\nexports.__esModule = true;\nexports.toKebabCase = exports.toCamelCase = exports.stringToArray = exports.isString = exports.isObject = exports.isBrowser = exports.hashString = exports.filteredJoin = exports.combineArray = exports.capitalize = void 0;\n\nvar isBrowser = function isBrowser() {\n return typeof window !== \"undefined\" && typeof window.document !== \"undefined\";\n};\n\nexports.isBrowser = isBrowser;\n\nvar isString = function isString(value) {\n return Object.prototype.toString.call(value) === '[object String]';\n};\n\nexports.isString = isString;\n\nvar isObject = function isObject(value) {\n return Object.prototype.toString.call(value) === '[object Object]';\n};\n\nexports.isObject = isObject;\n\nvar toCamelCase = function toCamelCase(str) {\n return isString(str) && str.indexOf('-') !== -1 && str.toLowerCase().replace(/(?:^\\w|-|[A-Z]|\\b\\w)/g, function (letter, index) {\n return index === 0 ? letter.toLowerCase() : letter.toUpperCase();\n }).replace(/\\s|\\W+/g, '') || str;\n};\n\nexports.toCamelCase = toCamelCase;\n\nvar toKebabCase = function toKebabCase(str) {\n return isString(str) && str.replace(/\\s|\\W+/g, '').replace(/[A-Z]/g, function (match) {\n return \"-\" + match.toLowerCase();\n });\n};\n\nexports.toKebabCase = toKebabCase;\n\nvar capitalize = function capitalize(str) {\n return (str === null || str === void 0 ? void 0 : str.charAt(0).toUpperCase()) + str.slice(1);\n};\n\nexports.capitalize = capitalize;\n\nvar stringToArray = function stringToArray(str, delimiter) {\n if (delimiter === void 0) {\n delimiter = \" \";\n }\n\n if (str instanceof Array) {\n return str;\n }\n\n if (isString(str)) {\n if (str.includes(delimiter)) {\n return str.split(delimiter);\n }\n\n return [str];\n }\n\n return false;\n};\n\nexports.stringToArray = stringToArray;\n\nvar hashString = function hashString(str) {\n return isString(str) && [].reduce.call(str, function (hash, item) {\n hash = (hash << 5) - hash + item.charCodeAt(0);\n return hash | 0;\n }, 0);\n};\n\nexports.hashString = hashString;\n\nvar filteredJoin = function filteredJoin(arrayToJoin) {\n return arrayToJoin.filter(function (item) {\n return item !== \"\";\n }).join();\n};\n\nexports.filteredJoin = filteredJoin;\n\nvar combineArray = function combineArray(fromArray, toArray) {\n if (!Array.isArray(fromArray)) {\n return [fromArray];\n }\n\n return fromArray.map(function (item, index) {\n return item || toArray && toArray[index];\n });\n};\n\nexports.combineArray = combineArray;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.createStyleImage = exports.createPseudoStyles = exports.createPseudoElementWithContent = exports.createPseudoElementMediaQuery = exports.createPseudoElement = exports.createNoScriptStyles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _StyleUtils = require(\"./StyleUtils\");\n\nvar _ImageUtils = require(\"./ImageUtils\");\n\nvar _MediaUtils = require(\"./MediaUtils\");\n\nvar _SimpleUtils = require(\"./SimpleUtils\");\n\nvar createPseudoElement = function createPseudoElement(className, appendix) {\n if (appendix === void 0) {\n appendix = \":before\";\n }\n\n var escapedClassName = (0, _StyleUtils.escapeClassNames)(className);\n var classes = (0, _SimpleUtils.stringToArray)(escapedClassName);\n var pseudoClasses = \"\";\n\n if (Array.isArray(classes)) {\n classes = classes.filter(function (c) {\n return c !== '';\n });\n\n if (classes.length > 0) {\n pseudoClasses = \".\" + classes.join('.') + appendix;\n }\n }\n\n return pseudoClasses;\n};\n\nexports.createPseudoElement = createPseudoElement;\n\nvar createPseudoElementWithContent = function createPseudoElementWithContent(pseudoElementString, imageSource) {\n return \"\\n \" + pseudoElementString + \" {\\n opacity: 1;\\n background-image: \" + imageSource + \";\\n }\";\n};\n\nexports.createPseudoElementWithContent = createPseudoElementWithContent;\n\nvar createPseudoElementMediaQuery = function createPseudoElementMediaQuery(pseudoElementString, media, imageSource, imageSourceWebP) {\n return \"\\n @media \" + media + \" {\\n \" + createPseudoElementWithContent(pseudoElementString, imageSource) + \"\\n }\\n \" + (imageSourceWebP && \"@media \" + media + \" {\\n \" + createPseudoElementWithContent(pseudoElementString, imageSourceWebP) + \"\\n }\") + \"\\n \";\n};\n\nexports.createPseudoElementMediaQuery = createPseudoElementMediaQuery;\n\nvar createPseudoStyles = function createPseudoStyles(_ref) {\n var className = _ref.className,\n transitionDelay = _ref.transitionDelay,\n lastImage = _ref.lastImage,\n nextImage = _ref.nextImage,\n afterOpacity = _ref.afterOpacity,\n bgColor = _ref.bgColor,\n fadeIn = _ref.fadeIn,\n backgroundStyles = _ref.backgroundStyles,\n style = _ref.style,\n finalImage = _ref.finalImage,\n originalData = _ref.originalData;\n var pseudoBefore = createPseudoElement(className);\n var pseudoAfter = createPseudoElement(className, \":after\");\n var currentBackgroundStyles = (0, _extends2.default)({}, backgroundStyles, style);\n return \"\\n \" + pseudoBefore + \",\\n \" + pseudoAfter + \" {\\n content: '';\\n display: block;\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0;\\n \" + (bgColor && \"background-color: \" + bgColor + \";\") + \"\\n \" + (0, _StyleUtils.setTransitionStyles)(transitionDelay, fadeIn) + \"\\n \" + (0, _StyleUtils.kebabifyBackgroundStyles)(currentBackgroundStyles) + \"\\n }\\n \" + pseudoBefore + \" {\\n z-index: -100;\\n \" + ((!afterOpacity || finalImage) && createStyleImage(nextImage, originalData) || \"\") + \"\\n \" + (afterOpacity && lastImage && createStyleImage(lastImage, originalData) || \"\") + \"\\n opacity: \" + Number(!afterOpacity) + \"; \\n }\\n \" + pseudoAfter + \" {\\n z-index: -101;\\n \" + ((afterOpacity || finalImage) && createStyleImage(nextImage, originalData) || \"\") + \"\\n \" + (!afterOpacity && lastImage && createStyleImage(lastImage, originalData) || \"\") + \"\\n \" + (finalImage ? \"opacity: \" + Number(afterOpacity) + \";\" : \"\") + \"\\n }\\n \";\n};\n\nexports.createPseudoStyles = createPseudoStyles;\n\nvar createStyleImage = function createStyleImage(image, originalData) {\n var hasStackedImages = (0, _ImageUtils.hasImageArray)({\n fluid: originalData\n }) && !(0, _MediaUtils.hasArtDirectionArray)({\n fluid: originalData\n });\n\n if ((0, _SimpleUtils.isBrowser)() || hasStackedImages) {\n return image ? \"background-image: \" + image + \";\" : \"\";\n }\n\n return \"\";\n};\n\nexports.createStyleImage = createStyleImage;\n\nvar createNoScriptStyles = function createNoScriptStyles(_ref2) {\n var className = _ref2.className,\n image = _ref2.image;\n\n if (image) {\n var returnArray = Array.isArray(image) && !(0, _MediaUtils.hasArtDirectionArray)({\n fluid: image\n });\n var addUrl = false;\n var allSources = (0, _ImageUtils.getCurrentFromData)({\n data: image,\n propName: \"src\",\n checkLoaded: false,\n addUrl: addUrl,\n returnArray: returnArray\n });\n var sourcesAsUrl = (0, _ImageUtils.getUrlString)({\n imageString: allSources,\n hasImageUrls: true,\n returnArray: returnArray\n });\n var sourcesAsUrlWithCSS = \"\";\n\n if (returnArray) {\n var cssStrings = (0, _ImageUtils.getCurrentFromData)({\n data: image,\n propName: \"CSS_STRING\",\n addUrl: false,\n returnArray: returnArray\n });\n sourcesAsUrlWithCSS = (0, _SimpleUtils.filteredJoin)((0, _SimpleUtils.combineArray)(sourcesAsUrl, cssStrings));\n }\n\n var pseudoBefore = createPseudoElement(className);\n\n if ((0, _MediaUtils.hasArtDirectionArray)({\n fluid: image\n })) {\n return image.map(function (currentMedia) {\n var sourceString = (0, _ImageUtils.getUrlString)({\n imageString: currentMedia.src\n });\n var webPString = (0, _ImageUtils.getUrlString)({\n imageString: currentMedia.srcWebp || \"\"\n });\n\n if (currentMedia.media) {\n return createPseudoElementMediaQuery(pseudoBefore, currentMedia.media, sourceString, webPString);\n }\n\n return createPseudoElementMediaQuery(pseudoBefore, 'screen', sourceString, webPString);\n }).join('');\n }\n\n return createPseudoElementWithContent(pseudoBefore, sourcesAsUrlWithCSS || sourcesAsUrl);\n }\n\n return \"\";\n};\n\nexports.createNoScriptStyles = createNoScriptStyles;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.setTransitionStyles = exports.presetBackgroundStyles = exports.kebabifyBackgroundStyles = exports.fixOpacity = exports.fixClassName = exports.escapeClassNames = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _shortUuid = _interopRequireDefault(require(\"short-uuid\"));\n\nvar _HelperUtils = require(\"./HelperUtils\");\n\nvar _ClassCache = require(\"./ClassCache\");\n\nvar _ImageUtils = require(\"./ImageUtils\");\n\nvar _SimpleUtils = require(\"./SimpleUtils\");\n\nvar _excluded = [\"className\"];\n\nvar fixClassName = function fixClassName(_ref) {\n var className = _ref.className,\n props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);\n var convertedProps = (0, _HelperUtils.convertProps)(props);\n var elementExists = (0, _ClassCache.inComponentClassCache)(className);\n var imageData = (0, _ImageUtils.getCurrentSrcData)(convertedProps);\n\n var additionalClassname = _shortUuid.default.generate();\n\n var randomClass = \" gbi-\" + (0, _SimpleUtils.hashString)(imageData && imageData.srcSet || className || \"noclass\") + \"-\" + additionalClassname;\n var additionalClass = elementExists || !className ? randomClass : \"\";\n var componentClassNames = (\"\" + (className || \"\") + (additionalClass || \"\")).trim();\n if (!elementExists) (0, _ClassCache.activateCacheForComponentClass)(className);\n return [componentClassNames];\n};\n\nexports.fixClassName = fixClassName;\n\nvar escapeClassNames = function escapeClassNames(classNames) {\n if (classNames) {\n var specialChars = (0, _SimpleUtils.isBrowser)() && window._gbiSpecialChars ? window._gbiSpecialChars : typeof __GBI_SPECIAL_CHARS__ !== \"undefined\" ? __GBI_SPECIAL_CHARS__ : ':/';\n var specialCharRegEx = new RegExp(\"[\" + specialChars + \"]\", 'g');\n return classNames.replace(specialCharRegEx, '\\\\$&');\n }\n\n return classNames;\n};\n\nexports.escapeClassNames = escapeClassNames;\n\nvar kebabifyBackgroundStyles = function kebabifyBackgroundStyles(styles) {\n if ((0, _SimpleUtils.isString)(styles)) {\n return styles;\n }\n\n if (styles instanceof Object) {\n return Object.keys(styles).filter(function (key) {\n return key.indexOf('background') === 0 && styles[key] !== '';\n }).reduce(function (resultingStyles, key) {\n return \"\" + resultingStyles + (0, _SimpleUtils.toKebabCase)(key) + \": \" + styles[key] + \";\\n\";\n }, \"\");\n }\n\n return \"\";\n};\n\nexports.kebabifyBackgroundStyles = kebabifyBackgroundStyles;\n\nvar setTransitionStyles = function setTransitionStyles(transitionDelay, fadeIn) {\n if (transitionDelay === void 0) {\n transitionDelay = \"0.25s\";\n }\n\n if (fadeIn === void 0) {\n fadeIn = true;\n }\n\n return fadeIn ? \"transition: opacity 0.5s ease \" + transitionDelay + \";\" : \"transition: none;\";\n};\n\nexports.setTransitionStyles = setTransitionStyles;\n\nvar fixOpacity = function fixOpacity(props) {\n var styledProps = (0, _extends2.default)({}, props);\n\n if (!styledProps.preserveStackingContext) {\n try {\n if (styledProps.style && styledProps.style.opacity) {\n if (isNaN(styledProps.style.opacity) || styledProps.style.opacity > 0.99) {\n styledProps.style.opacity = 0.99;\n }\n }\n } catch (e) {}\n }\n\n return styledProps;\n};\n\nexports.fixOpacity = fixOpacity;\n\nvar presetBackgroundStyles = function presetBackgroundStyles(backgroundStyles) {\n var defaultBackgroundStyles = {\n backgroundPosition: \"center\",\n backgroundRepeat: \"no-repeat\",\n backgroundSize: \"cover\"\n };\n return (0, _extends2.default)({}, defaultBackgroundStyles, backgroundStyles);\n};\n\nexports.presetBackgroundStyles = presetBackgroundStyles;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AnchorLink = AnchorLink;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _gatsby = require(\"gatsby\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nAnchorLink.propTypes = {\n to: _propTypes[\"default\"].string.isRequired,\n title: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string,\n stripHash: _propTypes[\"default\"].bool,\n gatsbyLinkProps: _propTypes[\"default\"].object,\n onAnchorLinkClick: _propTypes[\"default\"].func,\n children: _propTypes[\"default\"].node\n};\n\nfunction AnchorLink(_ref) {\n var to = _ref.to,\n title = _ref.title,\n children = _ref.children,\n className = _ref.className,\n _ref$stripHash = _ref.stripHash,\n stripHash = _ref$stripHash === void 0 ? false : _ref$stripHash,\n _ref$gatsbyLinkProps = _ref.gatsbyLinkProps,\n gatsbyLinkProps = _ref$gatsbyLinkProps === void 0 ? {} : _ref$gatsbyLinkProps,\n onAnchorLinkClick = _ref.onAnchorLinkClick;\n var onClickHandler = stripHash ? _utils.handleStrippedLinkClick : _utils.handleLinkClick;\n\n var linkProps = _objectSpread(_objectSpread({}, gatsbyLinkProps), {}, {\n /**\n * Spread optional gatsbyLinkProps object in fist, so our specific props will override\n */\n to: stripHash ? (0, _utils.stripHashedLocation)(to) : to,\n onClick: function onClick(e) {\n return onClickHandler(to, e, onAnchorLinkClick);\n }\n });\n /**\n * Optional props\n */\n\n\n if (title) linkProps.title = title;\n if (className) linkProps.className = className;\n return /*#__PURE__*/_react[\"default\"].createElement(_gatsby.Link, linkProps, children ? children : title);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.INVALID_HASH = exports.IMPROPPER_FORMATTING = void 0;\nvar IMPROPPER_FORMATTING = 'Anchor path should contain an absolute root path `/` and selector `#` Ex: `/about#team`';\nexports.IMPROPPER_FORMATTING = IMPROPPER_FORMATTING;\nvar INVALID_HASH = 'Anchor Links plugin attempted to scroll to an invalid hash on route change.';\nexports.INVALID_HASH = INVALID_HASH;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.onRouteUpdate = void 0;\n\nvar _utils = require(\"./utils\");\n\nvar onRouteUpdate = function onRouteUpdate(_ref, _ref2) {\n var location = _ref.location;\n var _ref2$offset = _ref2.offset,\n offset = _ref2$offset === void 0 ? 0 : _ref2$offset,\n _ref2$duration = _ref2.duration,\n duration = _ref2$duration === void 0 ? 1000 : _ref2$duration;\n var windowHash;\n\n if (_utils.isBrowser) {\n window.gatsby_scroll_offset = offset;\n window.gatsby_scroll_duration = duration;\n windowHash = window.gatsby_scroll_hash;\n }\n\n windowHash ? (0, _utils.scroller)(windowHash, offset) : (0, _utils.checkHash)(location, offset);\n\n if (_utils.isBrowser && windowHash) {\n window.gatsby_scroll_hash = undefined;\n }\n};\n\nexports.onRouteUpdate = onRouteUpdate;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"AnchorLink\", {\n enumerable: true,\n get: function get() {\n return _AnchorLink.AnchorLink;\n }\n});\n\nvar _AnchorLink = require(\"./components/AnchorLink\");","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.logWarning = logWarning;\nexports.scroller = scroller;\nexports.handleLinkClick = handleLinkClick;\nexports.handleStrippedLinkClick = handleStrippedLinkClick;\nexports.stripHashedLocation = stripHashedLocation;\nexports.checkHash = checkHash;\nexports.isDevelopment = exports.isBrowser = void 0;\n\nvar _scrollToElement = _interopRequireDefault(require(\"scroll-to-element\"));\n\nvar _gatsby = require(\"gatsby\");\n\nvar errorTypes = _interopRequireWildcard(require(\"./errors\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar isBrowser = typeof window !== 'undefined';\nexports.isBrowser = isBrowser;\nvar isDevelopment = process.env.NODE_ENV !== 'production';\nexports.isDevelopment = isDevelopment;\n\nfunction logWarning(message) {\n if (isDevelopment) console.warn(message);\n}\n\nfunction scroller(target) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;\n (0, _scrollToElement[\"default\"])(target, {\n duration: duration,\n offset: offset\n });\n}\n\nfunction handleLinkClick(to, e, onAnchorLinkClick) {\n /**\n * Log warnings on click\n */\n var improperFormatting = !to.includes('/') || !to.includes('#');\n if (improperFormatting) logWarning(errorTypes.IMPROPPER_FORMATTING);\n\n if (isBrowser && to.includes('#')) {\n var _to$split = to.split('#'),\n _to$split2 = _slicedToArray(_to$split, 2),\n anchorPath = _to$split2[0],\n anchor = _to$split2[1];\n\n if (window.location.pathname === (0, _gatsby.withPrefix)(anchorPath)) {\n e.preventDefault();\n scroller(\"#\".concat(anchor), window.gatsby_scroll_offset, window.gatsby_scroll_duration);\n }\n }\n\n if (onAnchorLinkClick) onAnchorLinkClick();\n}\n\nfunction handleStrippedLinkClick(to, e, onAnchorLinkClick) {\n /**\n * Log warnings on click\n */\n var improperFormatting = !to.includes('/') || !to.includes('#');\n if (improperFormatting) logWarning(errorTypes.IMPROPPER_FORMATTING);\n\n var _to$split3 = to.split('#'),\n _to$split4 = _slicedToArray(_to$split3, 2),\n anchorPath = _to$split4[0],\n anchor = _to$split4[1];\n /**\n * Determine location, run scroller or set window variable\n */\n\n\n var isSamePage = isBrowser && window.location.pathname === anchorPath;\n var isDifferentPage = isBrowser && window.location.pathname !== anchorPath;\n\n if (isSamePage) {\n e.preventDefault();\n scroller(\"#\".concat(anchor), window.gatsby_scroll_offset, window.gatsby_scroll_duration);\n }\n\n if (isDifferentPage) {\n window.gatsby_scroll_hash = \"#\".concat(anchor);\n }\n\n if (onAnchorLinkClick) onAnchorLinkClick();\n}\n\nfunction stripHashedLocation(to) {\n return to.split('#')[0];\n}\n\nfunction checkHash(location, offset) {\n var hash = location.hash,\n selector = hash ? hash.substr(1) : null,\n validElement = selector ? document.getElementById(selector) : null;\n if (hash && Boolean(validElement)) scroller(hash, offset);else if (hash && selector && !validElement) logWarning(errorTypes.INVALID_HASH);\n}","const listOfMetricsSend = new Set();\n\nfunction debounce(fn, timeout) {\n let timer = null;\n return function (...args) {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(fn, timeout, ...args);\n };\n}\n\nfunction sendWebVitals(dataLayerName = `dataLayer`) {\n const win = window;\n\n function sendData(data) {\n if (listOfMetricsSend.has(data.name)) {\n return;\n }\n\n listOfMetricsSend.add(data.name);\n sendToGTM(data, win[dataLayerName]);\n }\n\n return import(`web-vitals/base`).then(({\n getLCP,\n getFID,\n getCLS\n }) => {\n const debouncedCLS = debounce(sendData, 3000); // we don't need to debounce FID - we send it when it happens\n\n const debouncedFID = sendData; // LCP can occur multiple times so we debounce it\n\n const debouncedLCP = debounce(sendData, 3000); // With the true flag, we measure all previous occurences too, in case we start listening to late.\n\n getCLS(debouncedCLS, true);\n getFID(debouncedFID, true);\n getLCP(debouncedLCP, true);\n });\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}\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 } 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 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}\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","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _styledComponents = require(\"styled-components\");\n\n// eslint-disable-next-line react/prop-types,react/display-name\nexports.wrapRootElement = function (_ref, pluginOptions) {\n var element = _ref.element;\n return /*#__PURE__*/_react.default.createElement(_styledComponents.StyleSheetManager, {\n disableVendorPrefixes: (pluginOptions === null || pluginOptions === void 0 ? void 0 : pluginOptions.disableVendorPrefixes) === true\n }, element);\n};","function AutoHeight(userOptions = {}) {\n let emblaApi;\n let slideHeights = [];\n const heightEvents = ['select', 'slideFocus'];\n function init(emblaApiInstance) {\n emblaApi = emblaApiInstance;\n const {\n options: {\n axis\n },\n slideRects\n } = emblaApi.internalEngine();\n if (axis === 'y') return;\n slideHeights = slideRects.map(slideRect => slideRect.height);\n heightEvents.forEach(evt => emblaApi.on(evt, setContainerHeight));\n setContainerHeight();\n }\n function destroy() {\n heightEvents.forEach(evt => emblaApi.off(evt, setContainerHeight));\n const container = emblaApi.containerNode();\n container.style.height = '';\n if (!container.getAttribute('style')) container.removeAttribute('style');\n }\n function highestInView() {\n const {\n slideRegistry\n } = emblaApi.internalEngine();\n const selectedIndexes = slideRegistry[emblaApi.selectedScrollSnap()];\n return selectedIndexes.map(index => slideHeights[index]).reduce((a, b) => Math.max(a, b), 0);\n }\n function setContainerHeight() {\n emblaApi.containerNode().style.height = `${highestInView()}px`;\n }\n const self = {\n name: 'autoHeight',\n options: userOptions,\n init,\n destroy\n };\n return self;\n}\nAutoHeight.globalOptions = undefined;\n\nexport { AutoHeight as default };\n//# sourceMappingURL=embla-carousel-auto-height.esm.js.map\n","/* eslint-disable react/forbid-prop-types */\nimport React, { useEffect, useCallback, useState } from 'react';\nimport styled, { useTheme } from 'styled-components';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport Checkmark from 'TMComponents/Icons/Checkmark';\nimport Img from 'TMComponents/ImageDynamic';\nimport { object, array } from 'prop-types';\n\nconst MainWrapper = styled(FlexWrapper)`\n gap: 10px;\n`;\n\nconst SelectWrapper = styled(FlexWrapper)`\n flex-grow: 1;\n align-items: flex-start;\n gap: 10px;\n margin-top: 20px;\n margin-bottom: 20px;\n opacity: 0.5;\n transition: opacity 0.75s;\n\n &:hover {\n opacity: 1;\n }\n\n ${(props) => props.active && `opacity: 1;`}\n`;\n\nconst Selector = styled.button`\n flex-grow: 1;\n padding: 0;\n overflow: hidden;\n border: 3px solid ${({ theme }) => theme.colorSystem.UIElements[4]};\n border-radius: 25px;\n background-color: #ffffff;\n cursor: pointer;\n\n &.active {\n border: 3px solid ${({ theme }) => theme.colorSystem.primary[4]};\n }\n`;\n\n// TODO: This is hack since trying to use active overrides fail\nconst SelectorRibbon = styled.div`\n position: relative;\n width: 100%;\n padding-top: 8px;\n background-image: linear-gradient(to right, #ffffff, #ffffff);\n transition: background-image 0.75s ease-in-out;\n\n ${(props) =>\n props.gradOne &&\n `background-image: linear-gradient(to right, ${props.gradOne}, ${props.gradTwo}); \n `};\n\n &:before {\n display: block;\n position: absolute;\n content: '';\n width: 100%;\n height: 100%;\n opacity: 0.9;\n top: 0;\n left: 0;\n background-color: ${({ theme }) =>\n theme.colorSystem.UIElements[5]};\n transition: opacity 0.75s;\n }\n\n .active & {\n &:before {\n opacity: 0;\n }\n }\n`;\n\nconst AccImg = styled(Img)`\n margin: 0 auto;\n`;\n\nconst AccountSelector = ({ accounts, embla }) => {\n const theme = useTheme();\n const [active, setActive] = useState(0);\n\n const updateActive = useCallback((emblaApi) => {\n setActive(emblaApi.selectedScrollSnap());\n }, []);\n\n useEffect(() => {\n if (embla) embla.on('select', updateActive);\n }, [embla, updateActive]);\n\n const changeSlide = useCallback(\n (index) => {\n if (embla) embla.scrollTo(index);\n },\n [embla]\n );\n\n return (\n \n {accounts.map(\n (\n {\n id,\n accountName,\n accountImage,\n gradientOne,\n gradientTwo\n },\n i\n ) => {\n return (\n \n {\n changeSlide(i);\n }}>\n \n

{accountName}

\n \n \n \n \n
\n );\n }\n )}\n
\n );\n};\n\nAccountSelector.propTypes = {\n accounts: array.isRequired,\n embla: object\n};\n\nexport default AccountSelector;\n","/* eslint-disable import/no-unresolved */\n/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport { array } from 'prop-types';\nimport styled, { useTheme } from 'styled-components';\nimport Content from 'TMComponents/Content';\nimport ContentParserStructured from 'TMComponents/ContentParserStructured';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport Container from 'TMComponents/Container';\nimport useEmblaCarousel from 'embla-carousel-react';\nimport AutoHeight from 'embla-carousel-auto-height';\nimport AccountSelector from './Selector';\n\nconst Embla = styled.section`\n overflow: hidden;\n margin: auto;\n --slide-height: auto;\n --slide-spacing: 1rem;\n --slide-size: 95%;\n`;\n\nconst EmblaViewport = styled.div`\n overflow: hidden;\n`;\n\nconst EmblaContainer = styled.div`\n backface-visibility: hidden;\n display: flex;\n align-items: flex-start;\n touch-action: pan-y pinch-zoom;\n margin-left: calc(var(--slide-spacing) * -1);\n`;\n\nconst EmblaSlide = styled.div`\n flex: 0 0 var(--slide-size);\n min-width: 0;\n padding-left: var(--slide-spacing);\n`;\n\nconst EmblaSlideNumber = styled.div`\n box-shadow: inset 0 0 0 0.2rem var(--detail-medium-contrast);\n display: flex;\n align-items: center;\n justify-content: center;\n height: var(--slide-height);\n user-select: none;\n`;\n\nconst Wrapper = styled.div`\n width: 100%;\n overflow: hidden;\n margin-top: 25px;\n border-radius: 25px / 25px;\n border: 2px solid ${({ theme }) => theme.colorSystem.UIElements[4]};\n`;\n\nconst Ribbon = styled(FlexWrapper)`\n padding: 20px 18px;\n justify-content: space-between;\n align-items: baseline;\n align-content: space-between;\n ${(props) =>\n props.gradOne &&\n `background-image: linear-gradient(to right, ${props.gradOne}, ${props.gradTwo}); \n `};\n\n h3 {\n color: ${({ theme }) => theme.colorSystem.primary[3]};\n margin: 0;\n }\n`;\n\nconst Label = styled.div`\n font-weight: bold;\n font-size: 12px;\n border-radius: 25px;\n padding: 8px 16px;\n background-color: ${({ theme }) => theme.colorSystem.primary[3]};\n`;\n\nconst ContentStyle = {\n paddingTop: '16px',\n paddingBottom: '16px',\n backgroundColor: '#ffffff'\n};\n\nconst ContainerPadding = {\n padding: '24px 0'\n};\n\nconst AccountComparison = ({ heading, accounts }) => {\n const theme = useTheme();\n const [emblaRef, emblaApi] = useEmblaCarousel(\n {\n loop: true\n },\n [AutoHeight()]\n );\n\n return (\n \n \n\n \n \n \n \n {accounts.map(\n ({\n id,\n accountName,\n label,\n cardContent,\n gradientOne,\n gradientTwo\n }) => {\n return (\n \n \n \n \n

{accountName}

\n \n \n \n
\n
\n
\n );\n }\n )}\n
\n
\n
\n
\n );\n};\n\nAccountComparison.propTypes = {\n heading: array.isRequired,\n accounts: array.isRequired\n};\n\nexport default AccountComparison;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport { array, string } from 'prop-types';\nimport styled, { useTheme } from 'styled-components';\nimport { breakpoints } from 'TMConstants';\nimport Container from 'TMComponents/Container';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport CheckMark from '../Icons/Checkmark';\n\nconst HeaderWrapper = styled(FlexWrapper)`\n justify-content: space-between;\n align-items: baseline;\n`;\n\nconst Label = styled.div`\n ${(props) =>\n props.gradOne &&\n `background-image: linear-gradient(to right, ${props.gradOne}, ${props.gradTwo}); \n `};\n color: ${({ theme }) => theme.colorSystem.primary['3']};\n font-size: 12px;\n font-weight: bold;\n border-radius: 20px;\n padding: 8px 13px;\n`;\n\nconst Table = styled.table`\n width: 100%;\n border-collapse: collapse;\n background-color: ${({ theme }) => theme.colorSystem.UIElements['5']};\n vertical-align: middle;\n`;\n\nconst TableRound = styled(Table)`\n border-top-left-radius: 30px;\n border-top-right-radius: 30px;\n`;\n\nconst Row = styled.tr`\n border-top: 5px solid white;\n`;\n\nconst Cell = styled.td`\n padding: 12px;\n\n &:first-child {\n border-right: 5px solid white;\n }\n\n &:nth-child(2) {\n text-align: center;\n\n @media (min-width: ${breakpoints.mobileTablet}px) {\n width: 48px;\n height: 48px;\n }\n }\n`;\n\nconst HeaderCell = styled(Cell)`\n border-right: 0 !important;\n`;\n\nconst Line = styled.hr`\n width: 100%;\n margin: 10px 0;\n background-color: black;\n`;\n\nconst FooterColumns = styled(FlexWrapper)`\n justify-content: space-between;\n background-color: ${({ theme }) => theme.colorSystem.UIElements['5']};\n margin-bottom: 5px;\n`;\n\nconst BaseCol = styled.div`\n padding: 12px;\n`;\n\nconst ColumnLeft = styled(BaseCol)`\n text-align: left;\n`;\n\nconst ColumnRight = styled(BaseCol)`\n font-weight: bold;\n text-align: right;\n`;\n\nconst AccountFeature = ({\n accountName,\n accountLabel,\n labelGradientOne = '#000000',\n labelGradientTwo = '#000000',\n feature: feat,\n footerContent\n}) => {\n const theme = useTheme();\n return (\n \n \n \n \n \n \n

{accountName}

\n\n \n {accountLabel}\n \n
\n
\n
\n \n \n {feat.map(({ id, feature, check }) => {\n return (\n \n \n {feature} {check}\n \n\n \n {check ? (\n \n ) : (\n \n )}\n \n \n );\n })}\n \n
\n \n
\n {footerContent.map(({ id, columnLeft, columnRight }) => (\n \n {columnLeft}\n {columnRight}\n \n ))}\n
\n
\n );\n};\n\nAccountFeature.propTypes = {\n accountName: string.isRequired,\n accountLabel: string.isRequired,\n labelGradientOne: string,\n labelGradientTwo: string,\n feature: array.isRequired,\n footerContent: array.isRequired\n};\n\nexport default AccountFeature;\n","import React from 'react';\nimport Img from 'TMComponents/ImageDynamic';\nimport NavLink from 'TMComponents/NavLink';\nimport { shape, string, number, arrayOf } from 'prop-types';\nimport imageProps from 'TMPropTypes/imageProps';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport styled from 'styled-components';\nimport { breakpoints } from 'TMConstants';\n\nconst AppstoreLinkGroupWrapper = styled(FlexWrapper)`\n max-width: 568px;\n a {\n margin-bottom: 16px;\n }\n a:last-child {\n margin-bottom: 0;\n }\n\n @media (min-width: ${breakpoints.mobileTablet}px) {\n flex-direction: row;\n a {\n margin-right: 16px;\n margin-bottom: 0px;\n }\n a:last-child {\n margin-right: 0;\n }\n }\n`;\n\nconst AppStoreLink = ({ image, link, height }) => {\n const newImage = { ...image };\n const aspectRatio =\n newImage.gatsbyImageData.width / newImage.gatsbyImageData.height;\n newImage.gatsbyImageData.height = height;\n newImage.gatsbyImageData.width = height * aspectRatio;\n\n return (\n \n \n \n );\n};\n\nconst AppStoreLinkGroup = ({ components }) => (\n \n {components.map((subItem) => (\n \n ))}\n \n);\n\nAppStoreLink.propTypes = {\n link: string.isRequired,\n image: shape(imageProps).isRequired,\n height: number\n};\n\nAppStoreLink.defaultProps = {\n height: 60\n};\nAppStoreLinkGroup.propTypes = {\n components: arrayOf(\n shape({\n link: string.isRequired,\n image: shape(imageProps).isRequired,\n height: number\n })\n ).isRequired\n};\n\nexport default AppStoreLink;\nexport { AppStoreLink, AppStoreLinkGroup };\n","import React, { useState, useEffect } from 'react';\nimport { string } from 'prop-types';\nimport { Button } from 'TMComponents/Button';\nimport { v4 as uuidv4 } from 'uuid';\nimport { getOneLinkURL } from '..';\n\nconst AppsFlyerButton = ({ text, ...rest }) => {\n const [href, setHref] = useState();\n\n useEffect(() => {\n /* istanbul ignore next */\n const observer = new MutationObserver((_, obs) => {\n if (window.AF_SMART_SCRIPT) {\n const clickId = uuidv4();\n\n const { clickURL } = getOneLinkURL(clickId);\n setHref(clickURL);\n obs.disconnect();\n }\n });\n\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n\n return () => observer.disconnect();\n }, []);\n /* istanbul ignore next */\n return href ? (\n \n ) : null;\n};\n\nAppsFlyerButton.propTypes = {\n text: string\n};\n\nAppsFlyerButton.defaultProps = {\n text: ''\n};\n\nexport default AppsFlyerButton;\nexport { AppsFlyerButton };\n","/* istanbul ignore file */\nimport React, { useEffect, useRef } from 'react';\nimport styled from 'styled-components';\nimport { v4 as uuidv4 } from 'uuid';\nimport { displayQRCode } from '..';\n\nconst QRWrapper = styled.div`\n display: flex;\n`;\n\nconst removeChildren = (divRef) => {\n if (divRef.current) {\n while (divRef.current.firstChild) {\n divRef.current.removeChild(divRef.current.firstChild);\n }\n }\n};\n\nconst QR_WRAPPER_ID = 'qrcode-wrapper';\n\nconst QRCode = () => {\n const qrWrapper = useRef(null);\n\n useEffect(() => {\n const observer = new MutationObserver((_, obs) => {\n /* istanbul ignore next */\n if (window.AF_SMART_SCRIPT) {\n removeChildren(qrWrapper);\n displayQRCode(QR_WRAPPER_ID, uuidv4());\n obs.disconnect();\n }\n });\n\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n\n return () => observer.disconnect();\n }, []);\n\n return (\n \n );\n};\n\nexport default QRCode;\n","/* eslint-disable camelcase */\n/* istanbul ignore file */\n// Initializing Smart Script arguments\nconst oneLinkURL = process.env.GATSBY_APPSFLYER_ONELINK_URL;\nconst mediaSource = { keys: ['source'], defaultValue: 'utm_source' };\nconst campaign = { keys: ['campaign'] };\nconst site_id = { paramKey: 'af_siteid', keys: ['site_id'] };\nconst custom_ss_ui = { paramKey: 'af_ss_ui', defaultValue: 'true' };\n\n// Call the function after embedding the code through a global parameter on the window object called window.AF_SMART_SCRIPT.\n// Onelink URL is generated.\nexport const getOneLinkURL = (clickId = '') => {\n return window?.AF_SMART_SCRIPT?.generateOneLinkURL({\n oneLinkURL,\n afParameters: {\n mediaSource,\n campaign,\n afCustom: [site_id, custom_ss_ui],\n ...(clickId && {\n afSub1: {\n keys: ['click_id'],\n defaultValue: clickId\n }\n })\n }\n });\n};\n\nexport const displayQRCode = (divId, clickId) => {\n getOneLinkURL(clickId);\n window?.AF_SMART_SCRIPT?.displayQrCode(divId);\n};\n","import { string } from 'prop-types';\n\nexport default {\n hex: string\n};\n","/* eslint-disable react/forbid-prop-types */\n\nimport React, {\n createContext,\n useState,\n useContext,\n useMemo\n} from 'react';\nimport { shape, bool, string, object, node } from 'prop-types';\nimport imageProps from 'TMPropTypes/imageProps';\nimport colourProps from 'TMPropTypes/colourProps';\nimport styled from 'styled-components';\nimport Img from 'TMComponents/ImageStatic';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport { Button } from 'TMComponents/Button';\nimport ContentParserStructured from 'TMComponents/ContentParserStructured';\nimport { SmallText, MediumText } from 'TMComponents/Typography';\nimport { themeObj } from 'TMComponents/GlobalStyle';\n\nconst BannerWrapper = styled(FlexWrapper)`\n background: ${(props) => props.primaryColour};\n padding: 1vh 0;\n width: 100%;\n z-index: 5;\n`;\n\nconst InnerWrapper = styled(FlexWrapper)`\n padding: 0 0.4em;\n p,\n strong,\n a {\n color: ${({ colour }) => colour};\n ${MediumText}\n margin-bottom: 0 !important;\n }\n a:hover {\n color: ${({ colour }) => colour};\n }\n a:focus {\n color: ${({ colour }) => colour};\n }\n`;\nconst ImageWrapper = styled.div`\n min-width: 50px;\n`;\n\nconst Content = styled.div`\n margin: 0 0.5em;\n margin-top: -16px;\n`;\nconst BannerButton = styled(Button)`\n ${SmallText}\n margin: 0 1em;\n padding: 1em;\n white-space: nowrap;\n`;\n\nconst BannerContext = createContext();\n\nconst BannerContextProvider = ({ children }) => {\n const [showBanner, setShowBanner] = useState(false);\n const bannerState = useMemo(\n () => ({ showBanner, setShowBanner }),\n [showBanner]\n );\n return (\n \n {children}\n \n );\n};\n\nconst Banner = ({\n backgroundPrimaryColour,\n image,\n structuredContent,\n textColour,\n showButton,\n buttonText,\n buttonLink,\n desktopButtonLink\n}) => {\n const { showBanner } = useContext(BannerContext);\n\n if (!showBanner) return null;\n\n return (\n \n \n {image && (\n \n \n \n )}\n \n \n \n {showButton && (\n \n {buttonText}\n \n )}\n \n \n );\n};\n\nBanner.propTypes = {\n structuredContent: object.isRequired,\n backgroundPrimaryColour: shape(colourProps),\n buttonLink: string,\n buttonText: string,\n desktopButtonLink: string,\n image: shape(imageProps),\n showButton: bool,\n textColour: shape(colourProps)\n};\nBanner.defaultProps = {\n backgroundPrimaryColour: { hex: themeObj.colorSystem.primary[4] },\n buttonLink: '',\n buttonText: '',\n desktopButtonLink: '',\n image: undefined,\n showButton: false,\n textColour: { hex: themeObj.colorSystem.primary[3] }\n};\n\nBannerContextProvider.propTypes = {\n children: node.isRequired\n};\n\nexport default Banner;\nexport { Banner, BannerContextProvider, BannerContext };\n","import React, {\n createContext,\n useState,\n useMemo,\n useContext\n} from 'react';\nimport styled from 'styled-components';\nimport NavLink from 'TMComponents/NavLink';\nimport {\n Breadcrumbs as BreadcrumbsText,\n Body\n} from 'TMComponents/Typography';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport HeadTags from 'TMComponents/HeadTags';\nimport { node } from 'prop-types';\nimport { breakpoints } from 'TMConstants';\n\nconst Wrapper = styled.div`\n background-color: ${(props) => props.theme.colorSystem.primary[4]};\n box-shadow: ${({ theme }) => theme.colorSystem.shadows['8']};\n color: ${({ theme }) => theme.colorSystem.primary[3]};\n padding: 16px;\n position: relative;\n z-index: -1;\n`;\n\nconst BreadcrumbsContent = styled(FlexWrapper)`\n flex-wrap: wrap;\n gap: 4px;\n`;\nconst Crumb = styled(NavLink)`\n display: inline-block;\n &:first-child {\n margin-left: 0;\n }\n\n &:hover {\n text-decoration: underline;\n }\n\n @media (min-width: ${breakpoints.mobileTablet}px) {\n margin: 0 16px;\n }\n`;\n\nconst Text = styled(Body)`\n ${BreadcrumbsText}\n margin: 0;\n @media (min-width: ${breakpoints.mobileTablet}px) {\n ${(props) => props.chevron && 'margin-bottom: 1px;'};\n }\n`;\n\nconst getSchema = (crumbs) => {\n const schemaCrumbs = crumbs.map(({ title, link }, i) => ({\n '@type': 'ListItem',\n position: i + 1,\n name: title,\n item: `https://thinkmoney.co.uk${link}`\n }));\n\n return `{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":${JSON.stringify(\n schemaCrumbs\n )}}`;\n};\n\nconst BreadcrumbsContext = createContext();\n\nconst BreadcrumbsContextProvider = ({ children }) => {\n const [crumbs, setCrumbs] = useState({ show: false, crumbList: [] });\n const crumbsState = useMemo(() => ({ crumbs, setCrumbs }), [crumbs]);\n return (\n \n {children}\n \n );\n};\n\nconst Breadcrumbs = () => {\n const { crumbs } = useContext(BreadcrumbsContext);\n\n if (!crumbs?.show) return null;\n\n const { crumbList } = crumbs;\n\n return (\n <>\n \n \n \n \n \n \n Home\n \n {crumbList.map(({ title, link }) => (\n \n {'>'}\n \n {title}\n \n \n ))}\n \n \n \n );\n};\n\nBreadcrumbsContextProvider.propTypes = {\n children: node.isRequired\n};\n\nexport default Breadcrumbs;\nexport {\n Breadcrumbs,\n BreadcrumbsContextProvider,\n BreadcrumbsContext,\n getSchema\n};\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { node, string, bool, func, arrayOf, shape } from 'prop-types';\nimport queryParamsToObj from 'TMUtils/queryParamsToObj';\nimport styled from 'styled-components';\nimport stringSwitch from 'TMUtils/stringSwitch';\nimport NavLink from 'TMComponents/NavLink';\nimport { breakpoints } from 'TMConstants';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport { CTA } from '../Typography';\n\nconst PrimaryButton = styled.button`\n ${CTA}\n background-color: ${({ theme }) => theme.colorSystem.cta[1]};\n border: none;\n border-radius: 30px;\n color: ${({ theme }) => theme.colorSystem.UIText[3]};\n cursor: pointer;\n padding: 20px 40px;\n ${({ size }) => size === 'small' && 'padding: 16px 32px;'}\n position: relative;\n width: 100%;\n max-width: 350px;\n transition: all 0.3s;\n transition-property: background-color;\n\n &:hover,\n &:active {\n background: ${({ theme }) => theme.colorSystem.cta[2]};\n }\n white-space: normal;\n`;\n\nconst SecondaryButton = styled(PrimaryButton)`\n background-color: ${({ theme }) => theme.colorSystem.primary[3]};\n border-radius: 36px;\n border: solid 3px ${({ theme }) => theme.colorSystem.cta[1]};\n color: ${({ theme }) => theme.colorSystem.primary[1]};\n transition-property: border-color;\n\n &:hover,\n &:active {\n background-color: ${({ theme }) => theme.colorSystem.primary[3]};\n border-color: ${({ theme }) => theme.colorSystem.cta[2]};\n }\n`;\n\nconst PrimaryInvertedButton = styled(SecondaryButton)`\n border: none;\n transition-property: background-color;\n\n &:hover,\n &:active {\n background-color: ${({ theme }) =>\n theme.colorSystem.UIElements[4]};\n }\n`;\n\nconst SecondaryInvertedButton = styled(SecondaryButton)`\n background-color: ${({ theme }) => theme.colorSystem.primary[1]};\n border-radius: 36px;\n border: solid 3px ${({ theme }) => theme.colorSystem.primary[3]};\n color: ${({ theme }) => theme.colorSystem.UIText[3]};\n transition-property: border-color, color;\n\n &:hover,\n &:active {\n background-color: ${({ theme }) => theme.colorSystem.primary[1]};\n border-color: ${({ theme }) => theme.colorSystem.UIElements[4]};\n color: ${({ theme }) => theme.colorSystem.UIElements[4]};\n }\n`;\n\nconst SMSButton = styled(PrimaryButton)`\n border-radius: 4px;\n height: 64px;\n white-space: pre;\n @media (max-width: ${breakpoints.smallMobile}px) {\n padding: 20px 30px;\n }\n margin-bottom: 0px;\n`;\n\nconst ButtonGroupWrapper = styled(FlexWrapper)`\n margin: 0 auto;\n max-width: 350px;\n\n a {\n margin-bottom: 16px;\n }\n a:last-child {\n margin-bottom: 0;\n }\n`;\n\nconst StyledButtons = {\n primary: PrimaryButton,\n secondary: SecondaryButton,\n invertedPrimary: PrimaryInvertedButton,\n invertedSecondary: SecondaryInvertedButton,\n sms: SMSButton\n};\n\nconst Button = ({\n link = '',\n desktopLink = '',\n children,\n variant = 'primary',\n size = 'large',\n disabled,\n onClick,\n text = '',\n tracking\n}) => {\n const [href, setHref] = useState(link);\n useEffect(() => {\n let switchedLink = stringSwitch(link, desktopLink);\n\n if (tracking && window.location.search !== '') {\n const params = new URLSearchParams(\n queryParamsToObj(window.location.search)\n ).toString();\n\n switchedLink = `${switchedLink}?${params}`;\n }\n setHref(switchedLink);\n }, []);\n\n const StyledButton = StyledButtons[variant];\n\n const getStyledButton = useCallback(\n () => (\n \n {children || text}\n \n ),\n [disabled, size, onClick, children, text]\n );\n\n return href ? (\n {getStyledButton()}\n ) : (\n getStyledButton()\n );\n};\n\nconst ButtonGroup = ({ components }) => (\n \n {components.map((subItem) => (\n \n ))}\n \n);\nButton.propTypes = {\n children: node,\n text: string,\n link: string,\n desktopLink: string,\n variant: string,\n size: string,\n disabled: bool,\n onClick: func,\n tracking: bool\n};\n\nButtonGroup.propTypes = {\n components: arrayOf(\n shape({\n link: string,\n desktopLink: string,\n variant: string,\n disabled: bool,\n onClick: func\n })\n ).isRequired\n};\n\nexport default Button;\nexport { Button, ButtonGroup };\n","/* eslint-disable react/prop-types */\nimport { object, shape, bool, number } from 'prop-types';\nimport imageProps from './imageProps';\n\nexport default {\n icon: shape({\n icon: shape(imageProps)\n }),\n shadow: bool,\n backgroundImage: shape(imageProps),\n height: number,\n whiteCardBackground: bool,\n contentStructured: object\n};\n","/* eslint-disable react/no-array-index-key */\nimport React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { arrayOf, node, number } from 'prop-types';\n\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport { breakpoints } from 'TMConstants';\n\nconst CompWrapper = styled.div`\n -ms-overflow-style: -ms-autohiding-scrollbar;\n -webkit-overflow-scrolling: touch;\n scroll-snap-type: x mandatory;\n display: flex;\n flex-wrap: nowrap;\n justify-content: left;\n overflow-x: auto;\n padding: 32px 0;\n\n &::-webkit-scrollbar {\n display: none;\n }\n\n @media (min-width: ${breakpoints.tabletDesktop}px) {\n justify-content: center;\n }\n`;\n\nconst CircleWrapper = styled(FlexWrapper)`\n @media (min-width: ${breakpoints.tabletDesktop}px) {\n display: none;\n }\n`;\n\nconst Circle = styled.div`\n background-color: ${({ theme, isActive }) =>\n isActive\n ? theme.colorSystem.secondary[1]\n : theme.colorSystem.secondary[2]};\n border: 2px solid ${({ theme }) => theme.colorSystem.primary[1]};\n border-radius: 50%;\n height: 16px;\n margin-right: 8px;\n width: 16px;\n\n &:last-child {\n margin-right: none;\n }\n`;\n\nconst HorizontalScroll = ({ children, maxWidth }) => {\n const [inView, updateInView] = useState(0);\n return (\n <>\n {\n updateInView(\n Math.round(e.target.scrollLeft / maxWidth)\n );\n }}\n data-testid=\"wrapper\">\n {children}\n \n \n {[...Array(children.length).keys()].map((_, i) => (\n \n ))}\n \n \n );\n};\n\nHorizontalScroll.propTypes = {\n children: arrayOf(node).isRequired,\n maxWidth: number.isRequired\n};\n\nexport default HorizontalScroll;\n","/* eslint-disable react/forbid-prop-types */\n/* eslint-disable no-param-reassign */\n\nimport React from 'react';\nimport styled, { useTheme, css } from 'styled-components';\nimport Content from 'TMComponents/Content';\nimport ImageDynamic from 'TMComponents/ImageDynamic';\nimport imageProps from 'TMPropTypes/imageProps';\nimport { array, shape } from 'prop-types';\n\nconst baseCardStyles = css`\n width: 100%;\n max-width: 350px;\n border-radius: 32px;\n background-color: ${({ theme }) => theme.colorSystem.primary[3]};\n`;\n\nconst Overflow = styled.div`\n position: relative;\n padding: 8px 20px 0;\n margin-bottom: 8px;\n`;\nconst Overlay = styled.div`\n position: absolute;\n width: 80%;\n left: 0;\n right: 0;\n bottom: 0;\n margin-left: auto;\n margin-right: auto;\n`;\n\nconst CardBackground = styled.div`\n ${baseCardStyles}\n padding: 12px 0px;\n`;\n\nconst CardImageBackground = styled(ImageDynamic)`\n &::before,\n &::after {\n ${baseCardStyles};\n }\n ${baseCardStyles};\n padding: 20px 0;\n`;\n\nconst StyledContent = styled(Content)`\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n`;\n\nconst LargeCard = ({ backgroundImage, overlayImage, image, content }) => {\n const theme = useTheme();\n if (backgroundImage) {\n return (\n \n \n \n );\n }\n return (\n \n {image && (\n \n \n {overlayImage && (\n \n \n \n )}\n \n )}\n \n \n );\n};\n\nexport default LargeCard;\n\nLargeCard.propTypes = {\n content: array.isRequired,\n image: shape(imageProps),\n overlayImage: shape(imageProps),\n backgroundImage: shape(imageProps)\n};\n","/* eslint-disable react/forbid-prop-types */\n/* eslint-disable no-param-reassign */\n\nimport { array, oneOf, shape } from 'prop-types';\nimport React from 'react';\nimport styled, { useTheme, css } from 'styled-components';\nimport Content from 'TMComponents/Content';\nimport Icon from 'TMComponents/Icon';\nimport imageProps from 'TMPropTypes/imageProps';\n\nconst baseCardStyles = css`\n width: 100%;\n max-width: 350px;\n border-radius: 32px;\n padding: 0 20px;\n background-color: ${({ theme }) => theme.colorSystem.primary[3]};\n`;\n\nconst CardBackground = styled.div`\n ${baseCardStyles}\n border-radius: 16px;\n display: flex;\n\n ${({ position }) =>\n position === 'right' &&\n `\n justify-content: space-between;\n flex-direction: row-reverse; \n `}\n`;\nconst IconWrapper = styled.div`\n padding: 16px 0;\n ${({ position }) =>\n position === 'right' &&\n `\n padding-left: 16px; \n `}\n ${({ position }) =>\n position === 'left' &&\n `\n padding-right: 16px; \n `}\n`;\n\nconst InfoCard = ({ content, sideIcon = null, iconPosition = 'left' }) => {\n const theme = useTheme();\n\n return (\n \n {sideIcon && (\n \n \n \n )}\n \n \n );\n};\n\nexport default InfoCard;\n\nInfoCard.propTypes = {\n content: array.isRequired,\n sideIcon: shape(imageProps),\n iconPosition: oneOf(['left', 'right'])\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport cardProps from 'TMPropTypes/cardProps';\nimport { breakpoints } from 'TMConstants';\nimport Img from 'TMComponents/ImageDynamic';\nimport { BgImage } from 'gbimage-bridge';\nimport { getImage } from 'gatsby-plugin-image';\nimport ContentParserStructured from 'TMComponents/ContentParserStructured';\n\nconst Wrapper = styled.div`\n background-color: ${({ whiteCardBackground, theme }) =>\n whiteCardBackground && theme.colorSystem.primary[3]};\n border-bottom: 1px solid ${(props) => props.theme.colors.greys.light};\n border-radius: 10px;\n box-shadow: ${(props) =>\n props.shadow && props.theme.colorSystem.shadows[2]};\n margin-bottom: 16px;\n max-width: 370px;\n padding: 16px;\n padding-bottom: 32px;\n width: calc(100% - 16px);\n\n ${(props) =>\n props.height &&\n `\n flex: 0 0 350px;\n height: ${props.height}px;\n padding: 0;\n margin-right: 16px;\n\n &:first-child {\n margin-left: 0;\n }\n &:last-child {\n margin-right: 0;\n }\n `};\n\n @media (min-width: ${breakpoints.mobileTablet}px) {\n margin: 8px;\n width: calc(33.3% - 64px);\n }\n`;\n\nconst Background = styled(BgImage)`\n height: 100%;\n &::before,\n &::after {\n border-radius: 10px;\n }\n`;\n\nconst IconWrapper = styled.div`\n margin-bottom: -8px;\n`;\n\nconst ContentWrapper = styled.div`\n bottom: 0;\n padding: 16px 16px 0;\n position: absolute;\n width: calc(100% - 40px);\n`;\n\nconst Card = ({\n icon,\n contentStructured,\n shadow,\n backgroundImage,\n height,\n whiteCardBackground,\n centerAlignText\n}) => {\n const content = (\n <>\n {icon && (\n \n \n \n )}\n \n \n );\n const gatsbyImg = getImage(backgroundImage);\n return (\n \n {backgroundImage ? (\n \n {content}\n \n ) : (\n content\n )}\n \n );\n};\n\nCard.propTypes = cardProps;\n\nexport default Card;\n","/* eslint-disable react/no-array-index-key */\nimport React from 'react';\nimport { arrayOf, shape } from 'prop-types';\n\nimport cardProps from 'TMPropTypes/cardProps';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport HorizontalScroll from 'TMComponents/HorizontalScroll';\nimport styled from 'styled-components';\nimport CardV2 from 'TMComponents/Cards/LargeCard';\nimport InfoCard from 'TMComponents/Cards/InfoCard';\nimport Card from 'TMComponents/Card';\n\nconst Wrapper = styled(FlexWrapper)`\n padding: 16px 0;\n gap: 20px;\n`;\n\nconst CardContainer = ({ components }) => {\n // Horizontally scroll on mobile all cards which have a background/height\n const horizontalScroll = components[0].height > 0;\n\n const cards = components.map(({ id, __typename, ...rest }) => {\n switch (__typename) {\n case 'DatoCmsInfoCard':\n return ;\n case 'DatoCmsCard':\n return ;\n default:\n return ;\n }\n });\n\n if (horizontalScroll) {\n return {cards};\n }\n\n return (\n \n {cards}\n \n );\n};\n\nCardContainer.propTypes = {\n components: arrayOf(shape(cardProps)).isRequired\n};\n\nexport default CardContainer;\n","import React from 'react';\nimport { BodySmall } from 'TMComponents/Typography';\nimport NavLink from 'TMComponents/NavLink';\nimport { string } from 'prop-types';\n\nconst ColumnLink = ({ link, text }) => (\n \n {text}\n \n);\n\nColumnLink.propTypes = {\n link: string.isRequired,\n text: string.isRequired\n};\n\nexport default ColumnLink;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { BodySmall, FooterTitles } from 'TMComponents/Typography';\nimport { string } from 'prop-types';\n\nconst StyledTitle = styled(BodySmall)`\n ${FooterTitles}\n color: ${({ theme, header }) =>\n header\n ? theme.colorSystem.primary[4]\n : theme.colorSystem.primary[3]};\n display: block;\n list-style-type: none;\n margin-bottom: 24px;\n padding-bottom: 16px;\n`;\n\nconst Title = ({ header, text }) => (\n {text}\n);\n\nTitle.propTypes = {\n header: string,\n text: string.isRequired\n};\n\nTitle.defaultProps = {\n header: ''\n};\n\nexport default Title;\n","/* eslint-disable global-require, no-case-declarations */\nimport { bool, node, string } from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { breakpoints } from 'TMConstants';\n\nconst Options = styled.div`\n display: ${(props) => (props.hideOnMobile ? 'none' : 'block')};\n overflow: hidden;\n @media (min-width: ${breakpoints.mobileTablet}px) {\n display: ${(props) => (props.hideOnDesktop ? 'none' : 'block')};\n }\n\n ${({ whiteBackground, backgroundVariant, theme }) =>\n whiteBackground &&\n !backgroundVariant &&\n `background-color: ${theme.colorSystem.primary[3]};`}\n ${({ backgroundVariant }) =>\n backgroundVariant &&\n `\n background-color: ${backgroundVariant};\n `}\n ${({ noSideMargins }) =>\n noSideMargins &&\n `\n margin-left: -16px;\n margin-right: -16px;\n padding-left: 16px;\n padding-right: 16px;\n`}\n`;\n\nconst SharedOptions = ({\n hideOnMobile,\n hideOnDesktop,\n whiteBackground,\n backgroundVariant,\n noSideMargins,\n children\n}) => {\n return (\n \n {children}\n \n );\n};\n\nSharedOptions.propTypes = {\n children: node.isRequired,\n hideOnMobile: bool,\n hideOnDesktop: bool,\n whiteBackground: bool,\n backgroundVariant: string,\n noSideMargins: bool\n};\n\nSharedOptions.defaultProps = {\n hideOnMobile: false,\n hideOnDesktop: false,\n whiteBackground: false,\n backgroundVariant: '',\n noSideMargins: false\n};\n\nexport default SharedOptions;\n","/* eslint-disable global-require */\n\nconst dictionary = {\n DatoCmsAccountComparison: require('TMComponents/AccountComparison')\n .default,\n DatoCmsAccountFeature: require('TMComponents/AccountFeature').default,\n DatoCmsAppsFlyerButton: require('TMComponents/AppsFlyer/Button')\n .default,\n DatoCmsQrCode: require('TMComponents/AppsFlyer/QRCode').default,\n DatoCmsAppStoreLink: require('TMComponents/AppStoreLink').default,\n DatoCmsAppStoreLink__component_group:\n require('TMComponents/AppStoreLink').AppStoreLinkGroup,\n DatoCmsButton: require('TMComponents/Button').default,\n DatoCmsButton__component_group: require('TMComponents/Button')\n .ButtonGroup,\n DatoCmsCard__component_group: require('TMComponents/CardContainer')\n .default,\n DatoCmsCardV2__component_group: require('TMComponents/CardContainer')\n .default,\n DatoCmsInfoCard__component_group: require('TMComponents/CardContainer')\n .default,\n DatoCmsCurrencyConverter: require('TMComponents/CurrencyConverter')\n .default,\n DatoCmsCustomHtml: require('TMComponents/CustomHTML').default,\n DatoCmsLottie: require('TMComponents/LottieAsync').default,\n DatoCmsSendAppLink: require('TMComponents/SMS').default,\n DatoCmsColumnTitle: require('TMComponents/ColumnTitle').default,\n DatoCmsColumnLink: require('TMComponents/ColumnLink').default,\n DatoCmsFaq: require('TMComponents/FAQ').default,\n DatoCmsIconBlock: require('TMComponents/Icon').default,\n DatoCmsIconWithContent: require('TMComponents/IconWithContent')\n .default,\n DatoCmsImage: require('TMComponents/Image').default,\n DatoCmsImageList: require('TMComponents/ImageList').default,\n DatoCmsImageWithContent: require('TMComponents/ImageWithContent')\n .default,\n DatoCmsMoreInformation: require('TMComponents/MoreInformation')\n .default,\n DatoCmsOtCookieList: require('TMComponents/OtCookieList').default,\n DatoCmsPanel: require('TMComponents/Panel').default,\n DatoCmsRepExample: require('TMComponents/RepExample').default,\n DatoCmsSeparator: require('TMComponents/Separator').default,\n DatoCmsSocialMediaLink: require('TMComponents/SocialMediaLink')\n .default,\n DatoCmsStickyFooter: require('TMComponents/StickyFooter').StickyFooter,\n DatoCmsStickyFooterConcealer: require('TMComponents/StickyFooter')\n .StickyFooterConcealer,\n DatoCmsTable: require('TMComponents/Table').default,\n DatoCmsText: require('TMComponents/ContentParser').default,\n DatoCmsTextStructured: require('TMComponents/ContentParserStructured')\n .default,\n DatoCmsTrustpilotCarousel: require('TMComponents/TrustpilotCarousel')\n .default,\n DatoCmsTrustpilotReview__component_group:\n require('TMComponents/TrustpilotReview').TrustpilotReviewGroup,\n DatoCmsVideo: require('TMComponents/Video').default\n};\n\nexport default dictionary;\n","/* eslint-disable global-require, no-case-declarations */\nimport { string, bool } from 'prop-types';\nimport React from 'react';\nimport dictionary from './dictionary';\nimport SharedOptions from './SharedOptions';\n\nconst ComponentMapper = ({\n __typename,\n hideOnMobile,\n hideOnDesktop,\n whiteBackground,\n backgroundVariant,\n ...item\n}) => {\n const Component = dictionary[__typename];\n if (!Component) return

{__typename}

;\n\n return (\n \n \n \n );\n};\n\nComponentMapper.propTypes = {\n __typename: string.isRequired,\n hideOnMobile: bool,\n hideOnDesktop: bool,\n whiteBackground: bool,\n backgroundVariant: string\n};\n\nComponentMapper.defaultProps = {\n hideOnMobile: false,\n hideOnDesktop: false,\n whiteBackground: false,\n backgroundVariant: ''\n};\n\nexport default ComponentMapper;\n","import React from 'react';\nimport { node, string, bool, number } from 'prop-types';\nimport styled from 'styled-components';\n\nconst sizes = {\n large: 1280,\n small: 568\n};\n\nconst Wrapper = styled.div`\n margin-left: auto;\n margin-right: auto;\n\n ${({ leftAlign }) => leftAlign && 'margin-left: 0px;'}\n ${({ size, maxWidth }) =>\n size && !maxWidth && `max-width:${sizes[size]}px;`}\n ${({ maxWidth }) => maxWidth && `max-width:${maxWidth}px;`}\n`;\n\nconst Container = ({ leftAlign, size, children, ...rest }) => (\n \n {children}\n \n);\n\nContainer.propTypes = {\n children: node.isRequired,\n leftAlign: bool,\n size: string,\n maxWidth: number\n};\n\nContainer.defaultProps = {\n leftAlign: false,\n size: undefined,\n maxWidth: 0\n};\nexport default Container;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport contentGrouper from 'TMUtils/contentGrouper';\nimport ComponentMapper from 'TMComponents/ComponentMapper';\nimport { array, bool, node, string } from 'prop-types';\nimport styled from 'styled-components';\n\nconst Wrapper = styled.div`\n padding: 0 16px;\n ${(props) =>\n props.noSidePadding &&\n `\n padding: 0;\n `}\n & > div > *:only-child {\n margin: ${({ isPageContent }) =>\n isPageContent ? '16px auto' : '8px auto'};\n ${({ leftAlign }) => leftAlign && 'margin-left: 0px;'}\n }\n`;\n\nconst Content = ({\n content,\n leftAlign,\n noSidePadding,\n isPageContent,\n backgroundVariant,\n children,\n ...rest\n}) => (\n \n {contentGrouper(content).map((item) => (\n \n ))}\n {children}\n \n);\n\nContent.propTypes = {\n children: node,\n content: array.isRequired,\n leftAlign: bool,\n noSidePadding: bool,\n isPageContent: bool,\n backgroundVariant: string\n};\nContent.defaultProps = {\n children: undefined,\n leftAlign: false,\n noSidePadding: false,\n isPageContent: false\n};\n\nexport default Content;\n","/* eslint-disable react/prop-types */\n/* eslint-disable react/no-unstable-nested-components */\n/* eslint-disable react/no-children-prop */\n\nimport React from 'react';\nimport { string, bool, oneOf } from 'prop-types';\nimport styled, { useTheme } from 'styled-components';\nimport Container from 'TMComponents/Container';\nimport ReactMarkdown from 'react-markdown';\nimport NavLink from 'TMComponents/NavLink';\nimport {\n H2,\n H3,\n H4,\n H5,\n Body,\n BodyLarge,\n BodySmall,\n BodyExtraSmall,\n Bold\n} from 'TMComponents/Typography';\nimport List from 'TMComponents/List';\nimport ListItem from 'TMComponents/List/ListItem';\n\nconst Link = styled(NavLink)`\n ${Bold}\n text-decoration: underline;\n color: ${({ theme }) => theme.colorSystem.primary[4]};\n &:hover {\n color: ${({ theme }) => theme.colorSystem.primary[1]};\n }\n &:focus {\n color: ${({ theme }) => theme.colorSystem.primary[1]};\n }\n`;\nconst Wrapper = styled(Container)`\n max-width: 1280px;\n ${(props) =>\n props.maxWidth &&\n `\n max-width: ${props.maxWidth}px; \n `};\n ${(props) =>\n props.centerAlignText &&\n `\n text-align:center;\n `};\n ${({ whiteText, theme }) =>\n whiteText && `color: ${theme.colorSystem.UIText[3]} !important;`}\n`;\n\nconst ContentParser = ({\n copy,\n width,\n className = '',\n listCheckMarks,\n bodyCopyVariant = 'default',\n leftAlign,\n centerAlignText,\n backgroundVariant\n}) => {\n const theme = useTheme();\n\n return (\n \n {\n switch (bodyCopyVariant) {\n case 'large':\n return {children};\n case 'small':\n return {children};\n case 'extra_small':\n return (\n \n {children}\n \n );\n default:\n return {children};\n }\n },\n a: ({ href, children }) => (\n {children}\n ),\n ul: ({ children }) => (\n \n {children}\n \n ),\n li: ({ key, children }) => (\n \n {children}\n \n ),\n h1: ({ children }) =>

{children}

,\n h2: ({ children }) =>

{children}

,\n h3: ({ children }) =>

{children}

,\n h4: ({ children }) =>

{children}

,\n h5: ({ children }) =>
{children}
,\n h6: ({ children }) =>
{children}
\n }}\n className={className}\n />\n \n );\n};\n\nContentParser.propTypes = {\n copy: string.isRequired,\n className: string,\n listCheckMarks: bool,\n bodyCopyVariant: oneOf(['default', 'large', 'small', 'extra_small']),\n centerAlignText: bool\n};\n\nexport default ContentParser;\n","var _a, _b;\nexport var blockquoteNodeType = 'blockquote';\nexport var blockNodeType = 'block';\nexport var codeNodeType = 'code';\nexport var headingNodeType = 'heading';\nexport var inlineItemNodeType = 'inlineItem';\nexport var itemLinkNodeType = 'itemLink';\nexport var linkNodeType = 'link';\nexport var listItemNodeType = 'listItem';\nexport var listNodeType = 'list';\nexport var paragraphNodeType = 'paragraph';\nexport var rootNodeType = 'root';\nexport var spanNodeType = 'span';\nexport var thematicBreakNodeType = 'thematicBreak';\nexport var allowedNodeTypes = [\n blockquoteNodeType,\n blockNodeType,\n codeNodeType,\n headingNodeType,\n inlineItemNodeType,\n itemLinkNodeType,\n linkNodeType,\n listItemNodeType,\n listNodeType,\n paragraphNodeType,\n rootNodeType,\n spanNodeType,\n thematicBreakNodeType,\n];\nexport var allowedChildren = (_a = {},\n _a[blockquoteNodeType] = [paragraphNodeType],\n _a[blockNodeType] = [],\n _a[codeNodeType] = [],\n _a[headingNodeType] = 'inlineNodes',\n _a[inlineItemNodeType] = [],\n _a[itemLinkNodeType] = 'inlineNodes',\n _a[linkNodeType] = 'inlineNodes',\n _a[listItemNodeType] = [paragraphNodeType, listNodeType],\n _a[listNodeType] = [listItemNodeType],\n _a[paragraphNodeType] = 'inlineNodes',\n _a[rootNodeType] = [\n blockquoteNodeType,\n codeNodeType,\n listNodeType,\n paragraphNodeType,\n headingNodeType,\n blockNodeType,\n thematicBreakNodeType,\n ],\n _a[spanNodeType] = [],\n _a[thematicBreakNodeType] = [],\n _a);\nexport var inlineNodeTypes = [\n spanNodeType,\n linkNodeType,\n itemLinkNodeType,\n inlineItemNodeType,\n];\nexport var allowedAttributes = (_b = {},\n _b[blockquoteNodeType] = ['children', 'attribution'],\n _b[blockNodeType] = ['item'],\n _b[codeNodeType] = ['language', 'highlight', 'code'],\n _b[headingNodeType] = ['level', 'children', 'style'],\n _b[inlineItemNodeType] = ['item'],\n _b[itemLinkNodeType] = ['item', 'children', 'meta'],\n _b[linkNodeType] = ['url', 'children', 'meta'],\n _b[listItemNodeType] = ['children'],\n _b[listNodeType] = ['style', 'children'],\n _b[paragraphNodeType] = ['children', 'style'],\n _b[rootNodeType] = ['children'],\n _b[spanNodeType] = ['value', 'marks'],\n _b[thematicBreakNodeType] = [],\n _b);\nexport var defaultMarks = [\n 'strong',\n 'code',\n 'emphasis',\n 'underline',\n 'strikethrough',\n 'highlight',\n];\n//# sourceMappingURL=definitions.js.map","import { headingNodeType, spanNodeType, rootNodeType, paragraphNodeType, listNodeType, listItemNodeType, blockquoteNodeType, blockNodeType, codeNodeType, linkNodeType, itemLinkNodeType, inlineItemNodeType, inlineNodeTypes, thematicBreakNodeType, } from './definitions';\nexport function hasChildren(node) {\n return 'children' in node;\n}\nexport function isInlineNode(node) {\n return inlineNodeTypes.includes(node.type);\n}\nexport function isHeading(node) {\n return node.type === headingNodeType;\n}\nexport function isSpan(node) {\n return node.type === spanNodeType;\n}\nexport function isRoot(node) {\n return node.type === rootNodeType;\n}\nexport function isParagraph(node) {\n return node.type === paragraphNodeType;\n}\nexport function isList(node) {\n return node.type === listNodeType;\n}\nexport function isListItem(node) {\n return node.type === listItemNodeType;\n}\nexport function isBlockquote(node) {\n return node.type === blockquoteNodeType;\n}\nexport function isBlock(node) {\n return node.type === blockNodeType;\n}\nexport function isCode(node) {\n return node.type === codeNodeType;\n}\nexport function isLink(node) {\n return node.type === linkNodeType;\n}\nexport function isItemLink(node) {\n return node.type === itemLinkNodeType;\n}\nexport function isInlineItem(node) {\n return node.type === inlineItemNodeType;\n}\nexport function isThematicBreak(node) {\n return node.type === thematicBreakNodeType;\n}\nexport function isStructuredText(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nobj) {\n return obj && 'value' in obj && isDocument(obj.value);\n}\nexport function isDocument(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nobj) {\n return obj && 'schema' in obj && 'document' in obj;\n}\nexport function isEmptyDocument(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nobj) {\n if (!obj) {\n return true;\n }\n var document = isStructuredText(obj)\n ? obj.value\n : isDocument(obj)\n ? obj\n : null;\n if (!document) {\n throw new Error('Passed object is neither null, a Structured Text value or a DAST document');\n }\n return (document.schema === 'dast' &&\n document.document.children.length === 1 &&\n document.document.children[0].type === 'paragraph' &&\n document.document.children[0].children.length === 1 &&\n document.document.children[0].children[0].type === 'span' &&\n document.document.children[0].children[0].value === '');\n}\n//# sourceMappingURL=guards.js.map","/**\n * Flatten an array indefinitely.\n */\nexport function flatten(array) {\n var result = [];\n $flatten(array, result);\n return result;\n}\n/**\n * Internal flatten function recursively passes `result`.\n */\nfunction $flatten(array, result) {\n for (var i = 0; i < array.length; i++) {\n var value = array[i];\n if (Array.isArray(value)) {\n $flatten(value, result);\n }\n else {\n result.push(value);\n }\n }\n}\n//# sourceMappingURL=index.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { hasChildren, isDocument, isStructuredText } from './guards';\nimport { flatten } from 'array-flatten';\nvar RenderError = /** @class */ (function (_super) {\n __extends(RenderError, _super);\n function RenderError(message, node) {\n var _this = _super.call(this, message) || this;\n _this.node = node;\n Object.setPrototypeOf(_this, RenderError.prototype);\n return _this;\n }\n return RenderError;\n}(Error));\nexport { RenderError };\nexport var renderRule = function (guard, transform) { return ({\n appliable: guard,\n apply: function (ctx) {\n return transform(ctx);\n },\n}); };\nexport function transformNode(adapter, node, key, ancestors, renderRules) {\n var children = hasChildren(node)\n ? flatten(node.children\n .map(function (innerNode, index) {\n return transformNode(adapter, innerNode, \"t-\" + index, __spreadArrays([node], ancestors), renderRules);\n })\n .filter(function (x) { return !!x; }))\n : undefined;\n var matchingTransform = renderRules.find(function (transform) {\n return transform.appliable(node);\n });\n if (matchingTransform) {\n return matchingTransform.apply({ adapter: adapter, node: node, children: children, key: key, ancestors: ancestors });\n }\n else {\n throw new RenderError(\"Don't know how to render a node with type \\\"\" + node.type + \"\\\". Please specify a custom renderRule for it!\", node);\n }\n}\nexport function render(adapter, structuredTextOrNode, renderRules) {\n if (!structuredTextOrNode) {\n return null;\n }\n var result = transformNode(adapter, isStructuredText(structuredTextOrNode)\n ? structuredTextOrNode.value.document\n : isDocument(structuredTextOrNode)\n ? structuredTextOrNode.document\n : structuredTextOrNode, 't-0', [], renderRules);\n return result;\n}\n//# sourceMappingURL=render.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { isBlockquote, isCode, isHeading, isLink, isList, isListItem, isParagraph, isRoot, isSpan, render as genericRender, renderRule, RenderError, isThematicBreak, } from 'datocms-structured-text-utils';\nexport { renderRule as renderNodeRule, RenderError };\nexport function markToTagName(mark) {\n switch (mark) {\n case 'emphasis':\n return 'em';\n case 'underline':\n return 'u';\n case 'strikethrough':\n return 'del';\n case 'highlight':\n return 'mark';\n default:\n return mark;\n }\n}\nexport function renderSpanValue(_a) {\n var node = _a.node, key = _a.key, _b = _a.adapter, renderNode = _b.renderNode, renderText = _b.renderText, renderFragment = _b.renderFragment;\n var lines = node.value.split(/\\n/);\n if (lines.length === 0) {\n return renderText(node.value, key);\n }\n return renderFragment(lines.slice(1).reduce(function (acc, line, index) {\n return acc.concat([\n renderNode('br', { key: key + \"-br-\" + index }),\n renderText(line, key + \"-line-\" + index),\n ]);\n }, [renderText(lines[0], key + \"-line-first\")]), key);\n}\nexport function renderMarkRule(guard, transform) {\n return {\n appliable: typeof guard === 'string' ? function (mark) { return mark === guard; } : guard,\n apply: transform,\n };\n}\nexport function spanNodeRenderRule(_a) {\n var customMarkRules = _a.customMarkRules;\n return renderRule(isSpan, function (context) {\n var adapter = context.adapter, key = context.key, node = context.node;\n return (node.marks || []).reduce(function (children, mark) {\n if (!children) {\n return undefined;\n }\n var matchingCustomRule = customMarkRules.find(function (rule) {\n return rule.appliable(mark);\n });\n if (matchingCustomRule) {\n return matchingCustomRule.apply({ adapter: adapter, key: key, mark: mark, children: children });\n }\n return adapter.renderNode(markToTagName(mark), { key: key }, children);\n }, renderSpanValue(context));\n });\n}\nexport var defaultMetaTransformer = function (_a) {\n var meta = _a.meta;\n var attributes = {};\n meta.forEach(function (entry) {\n if (['target', 'title', 'rel'].includes(entry.id)) {\n attributes[entry.id] = entry.value;\n }\n });\n return attributes;\n};\nexport function render(structuredTextOrNode, options) {\n var metaTransformer = options.metaTransformer || defaultMetaTransformer;\n return genericRender(options.adapter, structuredTextOrNode, __spreadArrays((options.customNodeRules || []), [\n renderRule(isRoot, function (_a) {\n var renderFragment = _a.adapter.renderFragment, key = _a.key, children = _a.children;\n return renderFragment(children, key);\n }),\n renderRule(isParagraph, function (_a) {\n var renderNode = _a.adapter.renderNode, key = _a.key, children = _a.children;\n return renderNode('p', { key: key }, children);\n }),\n renderRule(isList, function (_a) {\n var renderNode = _a.adapter.renderNode, node = _a.node, key = _a.key, children = _a.children;\n return renderNode(node.style === 'bulleted' ? 'ul' : 'ol', { key: key }, children);\n }),\n renderRule(isListItem, function (_a) {\n var renderNode = _a.adapter.renderNode, key = _a.key, children = _a.children;\n return renderNode('li', { key: key }, children);\n }),\n renderRule(isBlockquote, function (_a) {\n var renderNode = _a.adapter.renderNode, key = _a.key, node = _a.node, children = _a.children;\n var childrenWithAttribution = node.attribution\n ? __spreadArrays((children || []), [\n renderNode(\"footer\", { key: 'footer' }, node.attribution),\n ]) : children;\n return renderNode('blockquote', { key: key }, childrenWithAttribution);\n }),\n renderRule(isCode, function (_a) {\n var _b = _a.adapter, renderNode = _b.renderNode, renderText = _b.renderText, key = _a.key, node = _a.node;\n return renderNode('pre', { key: key, 'data-language': node.language }, renderNode('code', null, renderText(node.code)));\n }),\n renderRule(isLink, function (_a) {\n var renderNode = _a.adapter.renderNode, key = _a.key, children = _a.children, node = _a.node;\n var meta = node.meta ? metaTransformer({ node: node, meta: node.meta }) : {};\n return renderNode('a', __assign(__assign({}, (meta || {})), { key: key, href: node.url }), children);\n }),\n renderRule(isThematicBreak, function (_a) {\n var renderNode = _a.adapter.renderNode, key = _a.key;\n return renderNode('hr', { key: key });\n }),\n renderRule(isHeading, function (_a) {\n var node = _a.node, renderNode = _a.adapter.renderNode, children = _a.children, key = _a.key;\n return renderNode(\"h\" + node.level, { key: key }, children);\n }),\n spanNodeRenderRule({ customMarkRules: options.customMarkRules || [] }),\n ]));\n}\n//# sourceMappingURL=index.js.map","var _a, _b;\nexport var blockquoteNodeType = 'blockquote';\nexport var blockNodeType = 'block';\nexport var codeNodeType = 'code';\nexport var headingNodeType = 'heading';\nexport var inlineItemNodeType = 'inlineItem';\nexport var itemLinkNodeType = 'itemLink';\nexport var linkNodeType = 'link';\nexport var listItemNodeType = 'listItem';\nexport var listNodeType = 'list';\nexport var paragraphNodeType = 'paragraph';\nexport var rootNodeType = 'root';\nexport var spanNodeType = 'span';\nexport var thematicBreakNodeType = 'thematicBreak';\nexport var allowedNodeTypes = [\n blockquoteNodeType,\n blockNodeType,\n codeNodeType,\n headingNodeType,\n inlineItemNodeType,\n itemLinkNodeType,\n linkNodeType,\n listItemNodeType,\n listNodeType,\n paragraphNodeType,\n rootNodeType,\n spanNodeType,\n thematicBreakNodeType,\n];\nexport var allowedChildren = (_a = {},\n _a[blockquoteNodeType] = [paragraphNodeType],\n _a[blockNodeType] = [],\n _a[codeNodeType] = [],\n _a[headingNodeType] = 'inlineNodes',\n _a[inlineItemNodeType] = [],\n _a[itemLinkNodeType] = 'inlineNodes',\n _a[linkNodeType] = 'inlineNodes',\n _a[listItemNodeType] = [paragraphNodeType, listNodeType],\n _a[listNodeType] = [listItemNodeType],\n _a[paragraphNodeType] = 'inlineNodes',\n _a[rootNodeType] = [\n blockquoteNodeType,\n codeNodeType,\n listNodeType,\n paragraphNodeType,\n headingNodeType,\n blockNodeType,\n thematicBreakNodeType,\n ],\n _a[spanNodeType] = [],\n _a[thematicBreakNodeType] = [],\n _a);\nexport var inlineNodeTypes = [\n spanNodeType,\n linkNodeType,\n itemLinkNodeType,\n inlineItemNodeType,\n];\nexport var allowedAttributes = (_b = {},\n _b[blockquoteNodeType] = ['children', 'attribution'],\n _b[blockNodeType] = ['item'],\n _b[codeNodeType] = ['language', 'highlight', 'code'],\n _b[headingNodeType] = ['level', 'children', 'style'],\n _b[inlineItemNodeType] = ['item'],\n _b[itemLinkNodeType] = ['item', 'children', 'meta'],\n _b[linkNodeType] = ['url', 'children', 'meta'],\n _b[listItemNodeType] = ['children'],\n _b[listNodeType] = ['style', 'children'],\n _b[paragraphNodeType] = ['children', 'style'],\n _b[rootNodeType] = ['children'],\n _b[spanNodeType] = ['value', 'marks'],\n _b[thematicBreakNodeType] = [],\n _b);\nexport var defaultMarks = [\n 'strong',\n 'code',\n 'emphasis',\n 'underline',\n 'strikethrough',\n 'highlight',\n];\n//# sourceMappingURL=definitions.js.map","import { headingNodeType, spanNodeType, rootNodeType, paragraphNodeType, listNodeType, listItemNodeType, blockquoteNodeType, blockNodeType, codeNodeType, linkNodeType, itemLinkNodeType, inlineItemNodeType, inlineNodeTypes, thematicBreakNodeType, } from './definitions';\nexport function hasChildren(node) {\n return 'children' in node;\n}\nexport function isInlineNode(node) {\n return inlineNodeTypes.includes(node.type);\n}\nexport function isHeading(node) {\n return node.type === headingNodeType;\n}\nexport function isSpan(node) {\n return node.type === spanNodeType;\n}\nexport function isRoot(node) {\n return node.type === rootNodeType;\n}\nexport function isParagraph(node) {\n return node.type === paragraphNodeType;\n}\nexport function isList(node) {\n return node.type === listNodeType;\n}\nexport function isListItem(node) {\n return node.type === listItemNodeType;\n}\nexport function isBlockquote(node) {\n return node.type === blockquoteNodeType;\n}\nexport function isBlock(node) {\n return node.type === blockNodeType;\n}\nexport function isCode(node) {\n return node.type === codeNodeType;\n}\nexport function isLink(node) {\n return node.type === linkNodeType;\n}\nexport function isItemLink(node) {\n return node.type === itemLinkNodeType;\n}\nexport function isInlineItem(node) {\n return node.type === inlineItemNodeType;\n}\nexport function isThematicBreak(node) {\n return node.type === thematicBreakNodeType;\n}\nexport function isStructuredText(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nobj) {\n return obj && 'value' in obj && isDocument(obj.value);\n}\nexport function isDocument(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nobj) {\n return obj && 'schema' in obj && 'document' in obj;\n}\nexport function isEmptyDocument(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nobj) {\n if (!obj) {\n return true;\n }\n var document = isStructuredText(obj)\n ? obj.value\n : isDocument(obj)\n ? obj\n : null;\n if (!document) {\n throw new Error('Passed object is neither null, a Structured Text value or a DAST document');\n }\n return (document.schema === 'dast' &&\n document.document.children.length === 1 &&\n document.document.children[0].type === 'paragraph' &&\n document.document.children[0].children.length === 1 &&\n document.document.children[0].children[0].type === 'span' &&\n document.document.children[0].children[0].value === '');\n}\n//# sourceMappingURL=guards.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { hasChildren, isDocument, isStructuredText } from './guards';\nimport { flatten } from 'array-flatten';\nvar RenderError = /** @class */ (function (_super) {\n __extends(RenderError, _super);\n function RenderError(message, node) {\n var _this = _super.call(this, message) || this;\n _this.node = node;\n Object.setPrototypeOf(_this, RenderError.prototype);\n return _this;\n }\n return RenderError;\n}(Error));\nexport { RenderError };\nexport var renderRule = function (guard, transform) { return ({\n appliable: guard,\n apply: function (ctx) {\n return transform(ctx);\n },\n}); };\nexport function transformNode(adapter, node, key, ancestors, renderRules) {\n var children = hasChildren(node)\n ? flatten(node.children\n .map(function (innerNode, index) {\n return transformNode(adapter, innerNode, \"t-\" + index, __spreadArrays([node], ancestors), renderRules);\n })\n .filter(function (x) { return !!x; }))\n : undefined;\n var matchingTransform = renderRules.find(function (transform) {\n return transform.appliable(node);\n });\n if (matchingTransform) {\n return matchingTransform.apply({ adapter: adapter, node: node, children: children, key: key, ancestors: ancestors });\n }\n else {\n throw new RenderError(\"Don't know how to render a node with type \\\"\" + node.type + \"\\\". Please specify a custom renderRule for it!\", node);\n }\n}\nexport function render(adapter, structuredTextOrNode, renderRules) {\n if (!structuredTextOrNode) {\n return null;\n }\n var result = transformNode(adapter, isStructuredText(structuredTextOrNode)\n ? structuredTextOrNode.value.document\n : isDocument(structuredTextOrNode)\n ? structuredTextOrNode.document\n : structuredTextOrNode, 't-0', [], renderRules);\n return result;\n}\n//# sourceMappingURL=render.js.map","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { defaultMetaTransformer, render, renderNodeRule, renderMarkRule, } from 'datocms-structured-text-generic-html-renderer';\nimport { isBlock, isInlineItem, isItemLink, RenderError, isStructuredText, } from 'datocms-structured-text-utils';\nimport React, { cloneElement, isValidElement } from 'react';\nexport { renderNodeRule, renderMarkRule, RenderError };\n// deprecated\nexport { renderNodeRule as renderRule };\nexport var defaultAdapter = {\n renderNode: React.createElement,\n renderFragment: function (children, key) { return React.createElement(React.Fragment, { key: key }, children); },\n renderText: function (text, key) { return text; }\n};\nexport function appendKeyToValidElement(element, key) {\n if (isValidElement(element) && element.key === null) {\n return cloneElement(element, { key: key });\n }\n return element;\n}\nexport function StructuredText(_a) {\n var data = _a.data, renderInlineRecord = _a.renderInlineRecord, renderLinkToRecord = _a.renderLinkToRecord, renderBlock = _a.renderBlock, renderText = _a.renderText, renderNode = _a.renderNode, renderFragment = _a.renderFragment, customMarkRules = _a.customMarkRules, customRules = _a.customRules, customNodeRules = _a.customNodeRules, metaTransformer = _a.metaTransformer;\n var result = render(data, {\n adapter: {\n renderText: renderText || defaultAdapter.renderText,\n renderNode: renderNode || defaultAdapter.renderNode,\n renderFragment: renderFragment || defaultAdapter.renderFragment\n },\n metaTransformer: metaTransformer,\n customMarkRules: customMarkRules,\n customNodeRules: __spreadArray([\n renderNodeRule(isInlineItem, function (_a) {\n var node = _a.node, key = _a.key;\n if (!renderInlineRecord) {\n throw new RenderError(\"The Structured Text document contains an 'inlineItem' node, but no 'renderInlineRecord' prop is specified!\", node);\n }\n if (!isStructuredText(data) || !data.links) {\n throw new RenderError(\"The document contains an 'itemLink' node, but the passed data prop is not a Structured Text GraphQL response, or data.links is not present!\", node);\n }\n var item = data.links.find(function (item) { return item.id === node.item; });\n if (!item) {\n throw new RenderError(\"The Structured Text document contains an 'inlineItem' node, but cannot find a record with ID \".concat(node.item, \" inside data.links!\"), node);\n }\n return appendKeyToValidElement(renderInlineRecord({ record: item }), key);\n }),\n renderNodeRule(isItemLink, function (_a) {\n var node = _a.node, key = _a.key, children = _a.children;\n if (!renderLinkToRecord) {\n throw new RenderError(\"The Structured Text document contains an 'itemLink' node, but no 'renderLinkToRecord' prop is specified!\", node);\n }\n if (!isStructuredText(data) || !data.links) {\n throw new RenderError(\"The document contains an 'itemLink' node, but the passed data prop is not a Structured Text GraphQL response, or data.links is not present!\", node);\n }\n var item = data.links.find(function (item) { return item.id === node.item; });\n if (!item) {\n throw new RenderError(\"The Structured Text document contains an 'itemLink' node, but cannot find a record with ID \".concat(node.item, \" inside data.links!\"), node);\n }\n return appendKeyToValidElement(renderLinkToRecord({\n record: item,\n children: children,\n transformedMeta: node.meta\n ? (metaTransformer || defaultMetaTransformer)({\n node: node,\n meta: node.meta\n })\n : null\n }), key);\n }),\n renderNodeRule(isBlock, function (_a) {\n var node = _a.node, key = _a.key;\n if (!renderBlock) {\n throw new RenderError(\"The Structured Text document contains a 'block' node, but no 'renderBlock' prop is specified!\", node);\n }\n if (!isStructuredText(data) || !data.blocks) {\n throw new RenderError(\"The document contains an 'block' node, but the passed data prop is not a Structured Text GraphQL response, or data.blocks is not present!\", node);\n }\n var item = data.blocks.find(function (item) { return item.id === node.item; });\n if (!item) {\n throw new RenderError(\"The Structured Text document contains a 'block' node, but cannot find a record with ID \".concat(node.item, \" inside data.blocks!\"), node);\n }\n return appendKeyToValidElement(renderBlock({ record: item }), key);\n })\n ], (customNodeRules || customRules || []), true)\n });\n if (typeof result === 'string') {\n return React.createElement(React.Fragment, null, result);\n }\n return result || null;\n}\n//# sourceMappingURL=index.js.map","var _a, _b;\nexport var blockquoteNodeType = 'blockquote';\nexport var blockNodeType = 'block';\nexport var codeNodeType = 'code';\nexport var headingNodeType = 'heading';\nexport var inlineItemNodeType = 'inlineItem';\nexport var itemLinkNodeType = 'itemLink';\nexport var linkNodeType = 'link';\nexport var listItemNodeType = 'listItem';\nexport var listNodeType = 'list';\nexport var paragraphNodeType = 'paragraph';\nexport var rootNodeType = 'root';\nexport var spanNodeType = 'span';\nexport var thematicBreakNodeType = 'thematicBreak';\nexport var allowedNodeTypes = [\n blockquoteNodeType,\n blockNodeType,\n codeNodeType,\n headingNodeType,\n inlineItemNodeType,\n itemLinkNodeType,\n linkNodeType,\n listItemNodeType,\n listNodeType,\n paragraphNodeType,\n rootNodeType,\n spanNodeType,\n thematicBreakNodeType,\n];\nexport var allowedChildren = (_a = {},\n _a[blockquoteNodeType] = [paragraphNodeType],\n _a[blockNodeType] = [],\n _a[codeNodeType] = [],\n _a[headingNodeType] = 'inlineNodes',\n _a[inlineItemNodeType] = [],\n _a[itemLinkNodeType] = 'inlineNodes',\n _a[linkNodeType] = 'inlineNodes',\n _a[listItemNodeType] = [paragraphNodeType, listNodeType],\n _a[listNodeType] = [listItemNodeType],\n _a[paragraphNodeType] = 'inlineNodes',\n _a[rootNodeType] = [\n blockquoteNodeType,\n codeNodeType,\n listNodeType,\n paragraphNodeType,\n headingNodeType,\n blockNodeType,\n thematicBreakNodeType,\n ],\n _a[spanNodeType] = [],\n _a[thematicBreakNodeType] = [],\n _a);\nexport var inlineNodeTypes = [\n spanNodeType,\n linkNodeType,\n itemLinkNodeType,\n inlineItemNodeType,\n];\nexport var allowedAttributes = (_b = {},\n _b[blockquoteNodeType] = ['children', 'attribution'],\n _b[blockNodeType] = ['item'],\n _b[codeNodeType] = ['language', 'highlight', 'code'],\n _b[headingNodeType] = ['level', 'children'],\n _b[inlineItemNodeType] = ['item'],\n _b[itemLinkNodeType] = ['item', 'children', 'meta'],\n _b[linkNodeType] = ['url', 'children', 'meta'],\n _b[listItemNodeType] = ['children'],\n _b[listNodeType] = ['style', 'children'],\n _b[paragraphNodeType] = ['children'],\n _b[rootNodeType] = ['children'],\n _b[spanNodeType] = ['value', 'marks'],\n _b[thematicBreakNodeType] = [],\n _b);\nexport var allowedMarks = [\n 'strong',\n 'code',\n 'emphasis',\n 'underline',\n 'strikethrough',\n 'highlight',\n];\n//# sourceMappingURL=definitions.js.map","import { headingNodeType, spanNodeType, rootNodeType, paragraphNodeType, listNodeType, listItemNodeType, blockquoteNodeType, blockNodeType, codeNodeType, linkNodeType, itemLinkNodeType, inlineItemNodeType, inlineNodeTypes, thematicBreakNodeType, } from './definitions';\nexport function hasChildren(node) {\n return 'children' in node;\n}\nexport function isInlineNode(node) {\n return inlineNodeTypes.includes(node.type);\n}\nexport function isHeading(node) {\n return node.type === headingNodeType;\n}\nexport function isSpan(node) {\n return node.type === spanNodeType;\n}\nexport function isRoot(node) {\n return node.type === rootNodeType;\n}\nexport function isParagraph(node) {\n return node.type === paragraphNodeType;\n}\nexport function isList(node) {\n return node.type === listNodeType;\n}\nexport function isListItem(node) {\n return node.type === listItemNodeType;\n}\nexport function isBlockquote(node) {\n return node.type === blockquoteNodeType;\n}\nexport function isBlock(node) {\n return node.type === blockNodeType;\n}\nexport function isCode(node) {\n return node.type === codeNodeType;\n}\nexport function isLink(node) {\n return node.type === linkNodeType;\n}\nexport function isItemLink(node) {\n return node.type === itemLinkNodeType;\n}\nexport function isInlineItem(node) {\n return node.type === inlineItemNodeType;\n}\nexport function isThematicBreak(node) {\n return node.type === thematicBreakNodeType;\n}\nexport function isStructuredText(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nobj) {\n return obj && 'value' in obj && isDocument(obj.value);\n}\nexport function isDocument(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nobj) {\n return obj && 'schema' in obj && 'document' in obj;\n}\n//# sourceMappingURL=guards.js.map","/* eslint-disable react/forbid-prop-types */\n/* eslint-disable react/no-unstable-nested-components */\nimport React from 'react';\nimport { StructuredText, renderRule } from 'react-datocms';\nimport {\n isHeading,\n isParagraph,\n isList,\n isLink,\n isListItem\n} from 'datocms-structured-text-utils';\nimport { object, bool, oneOf, string } from 'prop-types';\nimport styled, { useTheme } from 'styled-components';\nimport List from 'TMComponents/List';\nimport ListItem from 'TMComponents/List/ListItem';\nimport NavLink from 'TMComponents/NavLink';\nimport Image from 'TMComponents/Image';\nimport { Button } from 'TMComponents/Button';\nimport SharedOptions from 'TMComponents/ComponentMapper/SharedOptions';\nimport Container from 'TMComponents/Container';\nimport {\n H1,\n H1Alt,\n H2,\n H3,\n H4,\n H5,\n Body,\n BodyLarge,\n BodySmall,\n BodyExtraSmall,\n Bold\n} from 'TMComponents/Typography';\n\nconst Wrapper = styled(Container)`\n position: relative;\n max-width: 568px;\n\n ${({ whiteText, theme }) =>\n whiteText && `color: ${theme.colorSystem.UIText[3]} !important;`}\n ${({ smallMargins }) =>\n smallMargins &&\n `\n h1,h2,h3,h4,h5,h6,p {\n margin-bottom: 0;\n }\n `}\n ${(props) =>\n props.centerAlignText &&\n `\n text-align:center;\n `}\n`;\n\nconst Link = styled(NavLink)`\n ${Bold}\n text-decoration: underline;\n color: ${({ theme }) => theme.colorSystem.primary[4]};\n &:hover {\n color: ${({ theme }) => theme.colorSystem.primary[1]};\n }\n &:focus {\n color: ${({ theme }) => theme.colorSystem.primary[1]};\n }\n`;\n\nconst ContentParserStructured = ({\n structuredCopy,\n listCheckMarks,\n bodyCopyVariant = 'default',\n smallMargins,\n allowH1,\n alternativeH1,\n leftAlign,\n centerAlignText,\n backgroundVariant\n}) => {\n const theme = useTheme();\n\n return (\n \n {\n const {\n __typename,\n hideOnMobile,\n hideOnDesktop,\n whiteBackground,\n ...item\n } = record;\n const ComponentDictionary = {\n DatoCmsImage: Image,\n DatoCmsButton: Button\n };\n const Component = ComponentDictionary[__typename];\n if (!Component) return null;\n return (\n \n \n \n );\n }}\n customNodeRules={[\n renderRule(isHeading, ({ node, children, key }) => {\n switch (node.level) {\n case 1:\n if (!allowH1)\n return

{children}

;\n if (alternativeH1)\n return (\n {children}\n );\n\n return

{children}

;\n\n case 3:\n return

{children}

;\n case 4:\n return

{children}

;\n case 5:\n return
{children}
;\n case 6:\n return
{children}
;\n default:\n return

{children}

;\n }\n }),\n\n renderRule(isParagraph, ({ children, key }) => {\n switch (bodyCopyVariant) {\n case 'large':\n return (\n \n {children}\n \n );\n case 'small':\n return (\n \n {children}\n \n );\n case 'extra_small':\n return (\n \n {children}\n \n );\n default:\n return {children};\n }\n }),\n\n renderRule(isList, ({ node, children, key }) => (\n \n {children}\n \n )),\n\n renderRule(isListItem, ({ key, children }) => (\n \n {children}\n \n )),\n renderRule(isLink, ({ node, children, key }) => (\n \n {children}\n \n ))\n ]}\n />\n \n );\n};\n\nContentParserStructured.propTypes = {\n structuredCopy: object.isRequired,\n listCheckMarks: bool,\n leftAlign: bool,\n smallMargins: bool,\n bodyCopyVariant: oneOf(['default', 'large', 'small', 'extra_small']),\n allowH1: bool,\n alternativeH1: bool,\n centerAlignText: bool,\n backgroundVariant: string\n};\n\nexport default ContentParserStructured;\n","/* eslint-disable react/forbid-prop-types */\n/* eslint-disable jsx-a11y/tabindex-no-positive */\n\nimport React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { string, func, array } from 'prop-types';\nimport Icon from 'TMComponents/Icons/ChevronRight';\nimport { breakpoints } from 'TMConstants';\nimport { FormFieldLabel } from '../../Typography';\n\nconst Wrapper = styled.div`\n background-color: ${({ theme }) => theme.colorSystem.primary[3]};\n border: 1px solid rgba(34, 34, 34, 0.1);\n border-radius: 5px;\n box-shadow: inset ${({ theme }) => theme.colorSystem.shadows['6']};\n color: ${({ theme }) => theme.colorSystem.primary[1]};\n ${FormFieldLabel}\n height: 64px;\n position: relative;\n text-align: left;\n @media (max-width: ${breakpoints.mobile}px) {\n width: calc(100% - 40px);\n }\n width: 343px;\n &:focus {\n outline: none;\n }\n &:disabled {\n background-color: ${(props) => props.theme.colors.greys.light};\n }\n`;\nconst Header = styled.div``;\nconst HeaderTitle = styled.div`\n align-items: center;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 20px;\n position: relative;\n`;\nconst ListWrapper = styled.ul`\n background-color: ${({ theme }) => theme.colorSystem.primary[3]};\n border: 1px solid rgba(34, 34, 34, 0.1);\n border-radius: 5px;\n left: -1px;\n list-style: none;\n margin-top: 0px;\n max-height: 445px;\n overflow-y: scroll;\n padding: 0;\n position: absolute;\n text-align: left;\n top: 65px;\n width: 100%;\n`;\nconst ListItem = styled.li`\n padding: 10px 0 10px 20px;\n position: relative;\n p {\n margin: 0;\n }\n :hover {\n background-color: ${(props) => props.theme.colors.greys.light};\n }\n`;\nconst Arrow = styled(Icon)`\n position: relative;\n transform: rotate(${(props) => (props.isOpen ? '-90deg' : '90deg')});\n`;\n\nconst Dropdown = ({ value, onItemSelect, optionList }) => {\n const [isListOpen, toggleMenu] = useState(false);\n return (\n \n {\n toggleMenu(!isListOpen);\n }}>\n \n {value}\n \n \n \n {isListOpen && (\n \n {optionList.map((option) => (\n {\n onItemSelect(option);\n toggleMenu(!isListOpen);\n }}>\n {' '}\n

{option.value}

\n \n ))}\n
\n )}\n
\n );\n};\n\nDropdown.propTypes = {\n value: string,\n onItemSelect: func.isRequired,\n optionList: array.isRequired\n};\n\nDropdown.defaultProps = {\n value: ''\n};\n\nexport default Dropdown;\n","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInYear = 365.2425;\n\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInMinute = 60000;\n\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInHour = 3600000;\n\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInSecond = 1000;\n\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\nexport var minTime = -maxTime;\n\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var minutesInHour = 60;\n\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInQuarter = 3;\n\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInYear = 12;\n\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var quartersInYear = 4;\n\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInHour = 3600;\n\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMinute = 60;\n\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInDay = secondsInHour * 24;\n\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInWeek = secondsInDay * 7;\n\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInYear = secondsInDay * daysInYear;\n\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMonth = secondsInYear / 12;\n\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInQuarter = secondsInMonth * 3;","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport default function parseISO(argument, options) {\n var _options$additionalDi;\n requiredArgs(1, arguments);\n var additionalDigits = toInteger((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n var dateStrings = splitDateString(argument);\n var date;\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time);\n // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","/* eslint global-require: \"error\" */\n/* eslint-disable react/forbid-prop-types */\nimport React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { object, string } from 'prop-types';\nimport axios from 'axios';\nimport Container from 'TMComponents/Container';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport Dropdown from 'TMComponents/form/Dropdown';\nimport Table from 'TMComponents/Table';\nimport LottieSpinner from 'TMComponents/LottieSpinner';\nimport ContentParserStructured from 'TMComponents/ContentParserStructured';\nimport { Body } from 'TMComponents/Typography';\nimport { format, parseISO } from 'date-fns';\n\nconst LastUpdated = styled(Body)`\n margin: 0px;\n padding: 40px 0px 24px;\n`;\n\nconst ErrorMessage = styled.div`\n padding: 100px 0;\n`;\n\nexport const modelTableBody = (currency) => {\n if (currency) {\n return [\n [\n `1 GBP = ${\n Math.round(\n (1 / currency.ecbReferenceRate) * 10000000\n ) / 10000000\n } ${currency.currencyAlpha}`,\n `1 GBP = ${\n Math.round((1 / currency.mastercardRate) * 10000000) /\n 10000000\n } ${currency.currencyAlpha}`,\n `${currency.totalmarkupOverECBPct}%`\n ]\n ];\n }\n return [];\n};\n\nexport const formatDisplayDate = (date) => {\n if (date) {\n const parsedDate = parseISO(date);\n return format(parsedDate, 'do MMMM yyyy');\n }\n return 'Invalid Date';\n};\n\nexport const modelCurrencyList = (currencies) => {\n if (Array.isArray(currencies)) {\n return currencies.map((currency) => ({\n ...currency,\n key: currency.currencyAlpha,\n value: `${currency.displayedCurrencyName} (${currency.currencyAlpha})`\n }));\n }\n return [];\n};\n\nexport const filterSortCurrencyList = (currencies, orderedList) => {\n const bothListsAreNotEmpty = !!(\n currencies.length && orderedList.length\n );\n const bothAreArrays = !!(\n Array.isArray(currencies) && Array.isArray(orderedList)\n );\n\n if (bothListsAreNotEmpty && bothAreArrays) {\n const filteredCurrencies = orderedList.reduce(\n (accumulator, currentValue) => {\n const currencyFound = currencies.find(\n (currency) => currency.currencyAlpha === currentValue\n );\n if (\n currencyFound &&\n accumulator.indexOf(currencyFound) === -1\n ) {\n accumulator.push(currencyFound);\n }\n return accumulator;\n },\n []\n );\n\n return filteredCurrencies;\n }\n return [];\n};\n\nexport const getLatestCurrencies = () => {\n return axios.get(process.env.GATSBY_FXRATES_URL, {\n headers: {\n 'x-api-key': process.env.GATSBY_FXRATES_API_KEY\n }\n });\n};\n\nexport const fetchLatestCurrencies = (orderedCurrencyList) =>\n getLatestCurrencies()\n .then((res) => {\n const { data } = res;\n const filteredCurrencies = filterSortCurrencyList(\n data,\n orderedCurrencyList\n );\n const currencies = modelCurrencyList(filteredCurrencies);\n return currencies;\n })\n .catch((err) => err);\n\nconst CurrencyConverter = ({\n tableHeaders,\n errorCopyStructured,\n currencyOrder\n}) => {\n const [dateUpdated, setDateUpdated] = useState('');\n const [currencyRates, setCurrencyRates] = useState([]);\n const [selectedCurrency, setSelectedCurrency] = useState({});\n const [error, setError] = useState('');\n const [isLoading, setLoading] = useState(true);\n\n const orderedCurrencyList = currencyOrder.split('\\n');\n useEffect(() => {\n fetchLatestCurrencies(orderedCurrencyList)\n .then((currencies) => {\n if (currencies.length) {\n setCurrencyRates(currencies);\n setDateUpdated(currencies[0].requestDate);\n setSelectedCurrency(currencies[0]);\n setLoading(false);\n } else {\n setError('Could not retrieve currency data');\n setLoading(false);\n }\n })\n .catch((err) => {\n setError(err);\n setLoading(false);\n });\n }, []);\n\n return (\n \n {isLoading && (\n \n )}\n {error && (\n \n \n \n )}\n {!isLoading && !error && (\n \n \n \n Last updated: {formatDisplayDate(dateUpdated)}\n \n \n \n )}\n \n );\n};\n\nCurrencyConverter.propTypes = {\n tableHeaders: string.isRequired,\n errorCopyStructured: object.isRequired,\n currencyOrder: string.isRequired\n};\n\nexport { CurrencyConverter as Unwrapped };\nexport default CurrencyConverter;\n","import React from 'react';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport { string } from 'prop-types';\n\nconst CustomHTML = ({ html }) => {\n return (\n \n );\n};\n\nCustomHTML.propTypes = {\n html: string\n};\n\nexport default CustomHTML;\n","import { string } from 'prop-types';\n\nexport default {\n title: string.isRequired,\n summary: string.isRequired\n};\n","import React from 'react';\nimport { string } from 'prop-types';\nimport { H4 } from 'TMComponents/Typography';\nimport ContentParser from 'TMComponents/ContentParser';\n\nconst Question = ({ title, summary }) => (\n <>\n

{title}

\n \n \n);\n\nQuestion.propTypes = {\n title: string.isRequired,\n summary: string.isRequired\n};\n\nexport default Question;\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { bool, string } from 'prop-types';\nimport { H4 } from 'TMComponents/Typography';\nimport ContentParser from 'TMComponents/ContentParser';\nimport ChevronRight from '../../Icons/ChevronRight';\nimport { themeObj } from '../../GlobalStyle';\n\nconst Wrapper = styled.div`\n background-color: ${themeObj.colorSystem.primary['3']};\n border-radius: 16px;\n box-shadow: 0px 4px 23px 0px rgba(0, 48, 87, 0.1);\n padding: 16px;\n margin-bottom: 12px;\n`;\n\nconst AccordionTitle = styled(H4)`\n margin: 0;\n max-width: 475px;\n`;\n\nconst AccordionContent = styled(ContentParser)`\n max-height: ${(props) => (props.show ? '100%' : '0px')};\n overflow: hidden;\n\n p {\n padding-top: 8px;\n box-sizing: border-box;\n margin: 0;\n }\n`;\n\nconst TitleWrapper = styled.button`\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n width: 100%;\n margin-bottom: 0px !important;\n background: none;\n border: 0;\n cursor: pointer;\n text-align: left;\n color: unset;\n`;\n\nconst Icon = styled(ChevronRight)`\n width: 25px;\n height: 18px;\n text-align: right;\n transform: rotate(90deg);\n transition: all 0.3s;\n\n ${(props) =>\n props.spin &&\n `\n transform: rotate(270deg);\n `}\n`;\n\nconst Item = ({ open, title, summary }) => {\n const [active, setActive] = useState(open);\n\n const toggle = () => {\n setActive((prevActive) => !prevActive);\n };\n\n return (\n \n \n {title}\n \n \n \n \n );\n};\n\nItem.propTypes = {\n open: bool,\n title: string.isRequired,\n summary: string.isRequired\n};\n\nItem.defaultProps = {\n open: false\n};\n\nexport default Item;\n","import React from 'react';\nimport { shape, arrayOf, array, bool, string } from 'prop-types';\nimport styled from 'styled-components';\nimport { breakpoints } from 'TMConstants';\nimport faqProps from 'TMPropTypes/faqProps';\n\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport HeadTags from 'TMComponents/HeadTags';\nimport Container from 'TMComponents/Container';\nimport ContentParser from 'TMComponents/ContentParser';\nimport Question from './Question';\nimport Accordion from './Accordion';\n\nconst ContainerWrapper = styled(Container)`\n @media (max-width: ${breakpoints.mobileTablet}px) {\n padding-left: 20px;\n padding-right: 20px;\n }\n`;\n\nconst StyledContainer = styled(Container)`\n padding-top: 56px;\n padding-bottom: 56px;\n`;\n\nconst Header = styled(ContentParser)`\n margin-bottom: 32px;\n`;\n\nconst Questions = styled(FlexWrapper)`\n div {\n margin-bottom: 48px;\n }\n div:last-child {\n margin-bottom: 0;\n }\n`;\n\nconst AccordionWrap = styled(FlexWrapper)``;\n\nexport const getSchema = (questions) => {\n const questionSchema = questions.map(({ title, summary }) => ({\n '@type': 'Question',\n name: title,\n acceptedAnswer: {\n '@type': 'Answer',\n text: `${summary}`\n }\n }));\n return `{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":${JSON.stringify(\n questionSchema\n )}}`;\n};\n\nconst flatStyle = (questions) => (\n \n {questions.map(({ id, ...rest }) => (\n \n ))}\n \n);\n\nconst accordionStyle = (questions) => (\n \n {questions.map(({ id, ...rest }) => (\n \n ))}\n \n);\n\nconst FAQ = ({ header, accordion, questions, backgroundVariant }) => (\n \n \n \n \n \n\n
\n {accordion ? accordionStyle(questions) : flatStyle(questions)}\n \n \n);\n\nFAQ.propTypes = {\n accordion: bool,\n // eslint-disable-next-line react/forbid-prop-types\n header: array,\n backgroundVariant: string,\n questions: arrayOf(shape(faqProps)).isRequired\n};\n\nFAQ.defaultProps = {\n accordion: false,\n backgroundVariant: '#fff'\n};\n\nexport default FAQ;\n","import React, { useState } from 'react';\nimport { string, shape, arrayOf, bool } from 'prop-types';\nimport styled from 'styled-components';\nimport { H3, Body } from 'TMComponents/Typography';\nimport { breakpoints } from 'TMConstants';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport { Button } from 'TMComponents/Button';\nimport NavLink from 'TMComponents/NavLink';\nimport ChevronRight from 'TMComponents/Icons/ChevronRight';\n\nconst Wrapper = styled.div`\n border-bottom: 2px solid ${(props) => props.theme.colors.greys.light};\n max-width: 568px;\n padding: 16px 0 24px 0;\n text-align: left;\n @media (min-width: ${breakpoints.mobileTablet}px) {\n border-bottom: none;\n padding: 24px 0 36px 0;\n }\n`;\n\nconst Header = styled.button`\n background-color: transparent;\n border: none;\n color: ${({ categoryAlternativeColor, theme }) =>\n categoryAlternativeColor\n ? theme.colorSystem.primary[4]\n : theme.colorSystem.primary[1]};\n margin-bottom: 24px;\n padding: 0;\n text-align: left;\n width: 100%;\n\n &:focus {\n outline: none;\n }\n`;\n\nconst QuestionText = styled(Body)`\n margin: 0;\n @media (min-width: ${breakpoints.mobileTablet}px) {\n margin: 0;\n }\n`;\n\nconst Title = styled(H3)`\n margin-bottom: 0;\n`;\nconst ChevronWrapper = styled.div`\n margin: auto 0;\n padding-left: 16px;\n`;\nconst Chevron = styled(ChevronRight)`\n transform: rotate(90deg);\n transition: transform 0.3s;\n width: 18px;\n\n ${(props) => props.open && 'transform: rotate(270deg);'}\n\n @media (min-width: ${breakpoints.mobileTablet}px) {\n display: none;\n }\n`;\n\nconst Inner = styled.div`\n ${(props) => !props.open && 'display: none'};\n @media (min-width: ${breakpoints.mobileTablet}px) {\n display: flex;\n flex-direction: column;\n }\n`;\n\nconst Questions = styled(FlexWrapper)`\n flex-direction: column;\n margin-bottom: 24px;\n`;\nconst Question = styled(NavLink)`\n border-bottom: 2px solid ${(props) => props.theme.colors.greys.light};\n display: block;\n padding: 8px 0;\n`;\n\nconst SeeMoreButton = styled(Button)`\n margin-bottom: 16px;\n margin-top: 24px;\n`;\n\nconst CategorySummary = ({\n name,\n categoryAlternativeColor,\n nameLink,\n posts,\n alwaysOpen\n}) => {\n const [open, setOpen] = useState(alwaysOpen);\n const titleComp = {name};\n return (\n \n !alwaysOpen && setOpen(!open)}\n aria-label=\"Toggle category\"\n categoryAlternativeColor={categoryAlternativeColor}>\n \n \n {nameLink ? (\n {titleComp}\n ) : (\n titleComp\n )}\n \n {!alwaysOpen && }\n \n
\n \n \n {posts.map((question) => (\n \n \n \n {question.name}\n \n \n \n \n \n \n ))}\n \n {nameLink && (\n \n \n See more like this\n \n \n )}\n \n \n );\n};\n\nCategorySummary.propTypes = {\n name: string.isRequired,\n nameLink: string,\n categoryAlternativeColor: bool,\n alwaysOpen: bool,\n posts: arrayOf(\n shape({\n name: string,\n url: string\n })\n ).isRequired\n};\n\nCategorySummary.defaultProps = {\n nameLink: undefined,\n alwaysOpen: false,\n categoryAlternativeColor: false\n};\n\nexport default CategorySummary;\n","import React from 'react';\nimport { node, bool } from 'prop-types';\nimport styled from 'styled-components';\n\nconst Wrapper = styled.div`\n display: flex;\n padding-inline-start: 0;\n ${(props) =>\n props.justify &&\n `\n justify-content: ${props.justify};\n `}\n\n ${(props) =>\n props.align &&\n `\n align-items: ${props.align};\n `}\n\n ${(props) =>\n props.direction &&\n `\n flex-direction: ${props.direction};\n `}\n\n ${(props) =>\n props.wrap &&\n `\n flex-wrap: wrap;\n `}\n`;\n\nconst FlexWrapper = ({ children, wrap, ...rest }) => (\n \n {children}\n \n);\n\nFlexWrapper.propTypes = {\n children: node.isRequired,\n wrap: bool\n};\n\nFlexWrapper.defaultProps = {\n wrap: undefined\n};\n\nexport default FlexWrapper;\n","import { createGlobalStyle } from 'styled-components';\nimport { Strong, Mark } from '../Typography';\n\nexport const themeObj = {\n colorSystem: {\n cta: {\n 1: '#1E9F60',\n 2: '#15653E',\n 3: '#0C66D4'\n },\n primary: {\n 1: '#003057',\n 2: '#494C6F',\n 3: '#FFFFFF',\n 4: '#0C66D4',\n 5: '#1E9F60'\n },\n secondary: {\n 1: '#59B0EF',\n 2: '#F5FBFF',\n 3: '#FFB494',\n 4: '#FFEAE2',\n 5: '#F1F9F5'\n },\n UIText: {\n 1: '#003057',\n 2: '#494C6F',\n 3: '#FFFFFF',\n 4: '#676B9B',\n 5: '#AF3131'\n },\n UIElements: {\n 1: '#908861',\n 2: '#404040',\n 3: '#6C6F72',\n 4: '#E3E7F0',\n 5: '#F9FAFD',\n 6: '#F4F6FB',\n 7: '#E5F4FF'\n },\n validation: {\n 1: '#1E9F60',\n 2: '#F1F9F5',\n 3: '#AF3131',\n 4: '#FFE5E5'\n },\n gradients: {\n 1: ['#003057', '#013F73'],\n 2: ['#E5F4FF', '#F1F9F5'],\n 3: ['#F1F9F5', '#E5F4FF'],\n 4: ['#003057', '#5D6088'],\n 5: ['#5D6088', '#003057']\n },\n accountGradients: {\n 1: ['#0060A9', '#1188E9', '#399EEF']\n },\n iconography: {\n 1: ['#CBE9FF', '#145A8C'],\n 2: ['#E5FFF2', '#1E764A'],\n 3: ['#FFF8F5', '#D26F60'],\n 4: ['#E3E5FC', '#5D6088']\n },\n shadows: {\n 1: '0 1px 5px 0 #00000080',\n 2: '0 16px 16px #f1f1f1',\n 3: '0 -1px 5px 0 #00000033, -2px -2px 10px 0 #e5f7ff1a',\n 4: '2px 2px 20px 0 #2222221a, -10px -10px 20px 0 #ffffff',\n 5: '20px 20px 60px 0 #e2e2e270, -20px -20px 60px 0 #ffffff',\n 6: '1px 1px 1px 0 #0000001a',\n 7: '1px -1px 4px 0 #22222233',\n 8: '0 1px 5px #0000001a',\n 9: '0px 4px 4px 0px #0000000A'\n },\n validations: {\n 1: '#1E9F60',\n 2: '#AF3131',\n 3: '#FFE5E5'\n }\n },\n // deprecated\n colors: {\n secondary: '#EFF2F9',\n black: '#222222',\n greys: {\n lightest: '#F6F7FA',\n light: '#F5F5F5',\n regular: '#C5C5C5',\n dark: '#595959',\n darkest: '#474747'\n }\n }\n};\n\nexport default createGlobalStyle`\n html, body {\n margin: 0; \n padding: 0;\n height: 100%;\n width: 100%;\n background:${themeObj.colorSystem.UIElements[5]} !important;\n max-width: 100%;\n color: ${themeObj.colorSystem.UIText[1]};\n ${Strong}\n ${Mark}\n }\n @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { \n h1,h2,h3,h4,h5,h6,p {\n background: none !important;\n -webkit-text-fill-color: inherit !important;\n }\n }\n`;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport { Helmet } from 'react-helmet';\nimport { arrayOf, shape, string, node, object } from 'prop-types';\nimport favicon from '../../images/favicon.png';\n\nconst HeadTags = ({ tags, schemaMarkup, children }) => (\n \n \n \n \n \n \n {tags\n .map(({ tagName, content, attributes }) => {\n if (tagName === 'title') {\n return {content};\n }\n if (tagName === 'meta') {\n return (\n \n );\n }\n return null;\n })\n .filter((tag) => tag)}\n {JSON.stringify(schemaMarkup) !== '{}' && (\n \n )}\n {children}\n \n);\n\nHeadTags.propTypes = {\n tags: arrayOf(\n shape({ tag: string, content: string, attributes: shape({}) })\n ),\n children: node,\n schemaMarkup: object\n};\n\nHeadTags.defaultProps = {\n tags: [],\n children: undefined,\n schemaMarkup: {}\n};\n\nexport default HeadTags;\n","export default \"data:image/png;base64,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\"","import React from 'react';\nimport Img from 'TMComponents/ImageDynamic';\nimport { shape } from 'prop-types';\nimport IconProps from 'TMPropTypes/imageProps';\n\nconst Icon = ({ icon }) => {\n return ;\n};\n\nIcon.propTypes = {\n icon: shape(IconProps).isRequired\n};\n\nexport default Icon;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport { shape, string, bool, object } from 'prop-types';\nimport styled from 'styled-components';\nimport imageProps from 'TMPropTypes/imageProps';\nimport ContentParser from 'TMComponents/ContentParser';\nimport ContentParserStructured from 'TMComponents/ContentParserStructured';\nimport Img from 'TMComponents/ImageDynamic';\nimport { H2 } from 'TMComponents/Typography';\nimport { Button } from 'TMComponents/Button';\nimport stringToDast from 'TMUtils/stringToDast';\nimport isStructuredContentEmpty from 'TMUtils/isStructuredContentEmpty';\nimport Container from 'TMComponents/Container';\n\nconst Wrapper = styled(Container)`\n padding: 16px 0;\n`;\n\nconst ButtonWrapper = styled.div`\n margin-bottom: 16px;\n`;\n\nconst IconWithContent = ({\n icon,\n title,\n copy,\n linkText,\n linkUrl,\n linkDesktopUrl,\n contentStructured,\n listCheckMarks,\n subText\n}) => {\n const structuredSubText =\n subText && stringToDast('paragraph', subText);\n\n return (\n \n \n {isStructuredContentEmpty(contentStructured) ? (\n <>\n

{title}

\n \n \n ) : (\n \n )}\n {linkText && (\n \n \n \n )}\n {subText && (\n \n )}\n
\n );\n};\n\nIconWithContent.propTypes = {\n icon: shape({\n icon: shape(imageProps)\n }).isRequired,\n title: string.isRequired,\n copy: string.isRequired,\n contentStructured: object,\n listCheckMarks: bool,\n linkText: string,\n linkUrl: string,\n linkDesktopUrl: string,\n subText: string\n};\n\nIconWithContent.defaultProps = {\n contentStructured: undefined,\n listCheckMarks: false,\n linkText: undefined,\n linkUrl: undefined,\n linkDesktopUrl: undefined,\n subText: ''\n};\n\nexport default IconWithContent;\n","import React from 'react';\nimport string from 'prop-types';\n\nimport { themeObj } from '../../GlobalStyle';\n\nconst Checkmark = ({ fill, stroke }) => {\n return (\n \n \n \n \n );\n};\n\nCheckmark.propTypes = {\n fill: string,\n stroke: string\n};\n\nCheckmark.defaultProps = {\n fill: themeObj.colorSystem.primary['4'],\n stroke: themeObj.colorSystem.UIText['3']\n};\n\nexport default Checkmark;\n","import React from 'react';\nimport { string } from 'prop-types';\n\nconst ChevronRight = ({ color, ...rest }) => (\n \n \n \n);\n\nChevronRight.propTypes = {\n color: string\n};\n\nChevronRight.defaultProps = {\n color: '#003057'\n};\n\nexport default ChevronRight;\n","import React, { useContext } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { number } from 'prop-types';\n\nconst Facebook = ({ width = 56 }) => {\n const { colorSystem } = useContext(ThemeContext);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Facebook;\n\nFacebook.propTypes = {\n width: number\n};\n","/* eslint-disable react/no-unused-prop-types */\nimport React from 'react';\nimport string from 'prop-types';\n\nconst Remove = ({ fill }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nRemove.propTypes = {\n fill: string\n};\n\nRemove.defaultProps = {\n fill: 'none'\n};\n\nexport default Remove;\n","import React, { useContext } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { number } from 'prop-types';\n\nconst Twitter = ({ width = 56 }) => {\n const { colorSystem } = useContext(ThemeContext);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Twitter;\n\nTwitter.propTypes = {\n width: number\n};\n","import React from 'react';\nimport NavLink from 'TMComponents/NavLink';\nimport Container from 'TMComponents/Container';\nimport Img from 'TMComponents/ImageDynamic';\nimport { string, number, shape, bool } from 'prop-types';\nimport imageProps from 'TMPropTypes/imageProps';\nimport styled from 'styled-components';\n\nconst StyledImage = styled(Img)`\n ${({ roundCorners }) => roundCorners && 'border-radius: 24px;'}\n`;\n\nconst Image = ({\n link = '',\n maxWidth = null,\n image,\n leftAlign = false,\n roundCorners = false\n}) => {\n return (\n \n {link ? (\n \n \n \n ) : (\n \n )}\n \n );\n};\n\nImage.propTypes = {\n image: shape(imageProps).isRequired,\n link: string,\n maxWidth: number,\n leftAlign: bool,\n roundCorners: bool\n};\n\nexport default Image;\n","import React from 'react';\nimport { GatsbyImage, getImage } from 'gatsby-plugin-image';\nimport styled from 'styled-components';\nimport { BgImage } from 'gbimage-bridge';\nimport { string, bool, shape } from 'prop-types';\nimport imageProps from 'TMPropTypes/imageProps';\n\nconst CoverImage = styled(BgImage)`\n aspect-ratio: 1;\n width: 100%;\n`;\n\nconst ImageDynamic = ({ imageData, isCover, alt, ...rest }) => {\n const gatsbyImg = getImage(imageData);\n const altText = imageData?.alt || alt;\n if (isCover) {\n return (\n \n );\n }\n return (\n \n );\n};\n\nexport default ImageDynamic;\n\nImageDynamic.propTypes = {\n imageData: shape(imageProps).isRequired,\n isCover: bool,\n alt: string\n};\n\nImageDynamic.defaultProps = {\n isCover: false,\n alt: ''\n};\n","import React from 'react';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport styled from 'styled-components';\nimport { arrayOf, shape, string } from 'prop-types';\n\nconst List = styled(FlexWrapper)`\n max-width: 1280px;\n`;\n\nconst ImageListImage = styled.img`\n margin: 20px;\n max-width: 100%;\n`;\n\nconst ImageList = ({ images }) => (\n \n {images.map(({ url, alt, ...rest }) => (\n \n ))}\n \n);\n\nImageList.propTypes = {\n images: arrayOf(\n shape({\n url: string,\n alt: string\n })\n ).isRequired\n};\n\nexport default ImageList;\n","import React from 'react';\nimport { getSrc } from 'gatsby-plugin-image';\nimport styled from 'styled-components';\nimport { string, shape } from 'prop-types';\nimport imageProps from 'TMPropTypes/imageProps';\n\nconst Img = styled.img`\n display: block;\n`;\n\nconst ImageStatic = ({ imageData, alt, ...rest }) => {\n const src = getSrc(imageData);\n const altText = imageData?.alt || alt;\n return (\n \n );\n};\n\nexport default ImageStatic;\n\nImageStatic.propTypes = {\n imageData: shape(imageProps).isRequired,\n alt: string\n};\n\nImageStatic.defaultProps = {\n alt: ''\n};\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport { object, string, bool, shape, node } from 'prop-types';\nimport styled from 'styled-components';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport ContentParserStructured from 'TMComponents/ContentParserStructured';\nimport { Button } from 'TMComponents/Button';\nimport DynamicImg from 'TMComponents/ImageDynamic';\nimport { breakpoints } from 'TMConstants';\nimport imageProps from 'TMPropTypes/imageProps';\nimport stringSwitch from 'TMUtils/stringSwitch';\nimport stringToDast from 'TMUtils/stringToDast';\n\nconst Sections = styled(FlexWrapper)` \n justify-content:center;\n flex-direction: column;\n max-width:1440px;\n ${({ imageCover }) =>\n imageCover &&\n `\n margin: 0 auto !important; \n `}\n ${(props) =>\n props.mobileImagePosition === 'below' &&\n `\n flex-direction: column-reverse; \n `}\n @media (min-width: ${breakpoints.mobileTablet}px) {\n display:flex;\n align-items: center;\n ${({ imagePosition }) => {\n switch (imagePosition) {\n case 'above':\n return 'flex-direction: column;';\n case 'right':\n return 'flex-direction: row-reverse;';\n case 'below':\n return 'flex-direction: column-reverse;';\n default:\n return 'flex-direction: row;';\n }\n }}\n @media (max-width: ${breakpoints.laptop}px) {\n justify-content: space-between;\n\n }\n`;\n\nconst Section = styled(FlexWrapper)`\n flex-direction: column;\n justify-content: center;\n padding: 16px 0;\n @media (min-width: ${breakpoints.mobileTablet}px) {\n width: 50%;\n max-width: 50%;\n }\n`;\n\nconst ContentSection = styled(Section)`\n @media (min-width: ${breakpoints.mobileTablet}px) {\n width: max-content;\n max-width: 720px;\n margin: 0 64px;\n }\n`;\n\nconst ImageSection = styled(Section)`\n ${({ hideMobileImage }) => hideMobileImage && 'display: none;'}\n @media (min-width: ${breakpoints.mobileTablet}px) {\n display: initial;\n }\n`;\n\nconst CoverImageSection = styled(ImageSection)`\n margin: -16px;\n @media (min-width: ${breakpoints.mobileTablet}px) {\n min-width: 480px;\n ${({ imagePosition }) => `\n margin: -16px 16px;\n margin-${imagePosition}: -24px;\n `}\n }\n`;\n\nconst ImageWithContent = ({\n image,\n contentStructured,\n imagePosition,\n mobileImagePosition,\n linkText,\n linkUrl,\n linkDesktopUrl,\n isButtonLink,\n listCheckMarks,\n subText,\n hideMobileImage,\n imageCover,\n backgroundVariant,\n children\n}) => {\n const structuredTextLink =\n linkText &&\n !isButtonLink &&\n stringToDast(\n 'link',\n linkText,\n stringSwitch(linkUrl, linkDesktopUrl)\n );\n const structuredSubText =\n subText && stringToDast('paragraph', subText);\n return (\n \n {imageCover ? (\n \n \n \n ) : (\n \n \n \n )}\n \n \n {linkText && isButtonLink ? (\n \n ) : (\n linkText &&\n !isButtonLink && (\n \n )\n )}\n {subText && (\n \n )}\n {children}\n \n \n );\n};\n\nImageWithContent.propTypes = {\n image: shape(imageProps).isRequired,\n children: node,\n contentStructured: object.isRequired,\n imagePosition: string,\n mobileImagePosition: string,\n hideMobileImage: bool,\n linkText: string,\n linkUrl: string,\n linkDesktopUrl: string,\n isButtonLink: bool,\n listCheckMarks: bool,\n imageCover: bool,\n subText: string,\n backgroundVariant: string\n};\n\nImageWithContent.defaultProps = {\n children: undefined,\n linkText: '',\n linkUrl: '',\n linkDesktopUrl: '',\n isButtonLink: false,\n listCheckMarks: false,\n hideMobileImage: false,\n imageCover: false,\n subText: undefined,\n imagePosition: 'right',\n mobileImagePosition: 'below'\n};\n\nexport default ImageWithContent;\n","import { useEffect } from 'react';\nimport { string } from 'prop-types';\n\nconst setUpMonetateRetrackerFunc = () => {\n let hasBeenCalledOnce = false;\n return function retrack() {\n if (hasBeenCalledOnce) {\n window.monetateQ = window.monetateQ || [];\n window.monetateQ.push(['trackData']);\n } else hasBeenCalledOnce = true;\n };\n};\n\nconst MonetateRetracker = ({ href }) => {\n window.triggerMonetateRetrack =\n window.triggerMonetateRetrack || setUpMonetateRetrackerFunc();\n useEffect(window.triggerMonetateRetrack, [href]);\n return null;\n};\n\nMonetateRetracker.propTypes = {\n href: string.isRequired\n};\n\nexport default MonetateRetracker;\n","import { string, arrayOf, shape, bool, oneOf } from 'prop-types';\nimport { Button } from 'TMComponents/Button';\nimport imageProps from './imageProps';\n\nexport const submenuLinkProps = {\n text: string,\n link: string\n};\n\nexport default {\n mobileLogo: shape(imageProps),\n desktopLogo: shape(imageProps),\n noTransparentNav: bool,\n isTop: bool,\n mobileButtonIcon: shape(imageProps),\n hideNav: bool,\n desktopRightSection: oneOf([Button.propTypes]),\n mobileBottomSection: arrayOf(oneOf([Button.propTypes, imageProps])),\n menuItems: arrayOf(\n shape({\n id: string,\n title: string,\n submenu: arrayOf(shape(submenuLinkProps))\n })\n )\n};\n","import { func, string, bool, node, arrayOf, shape } from 'prop-types';\nimport React from 'react';\nimport NavLink from 'TMComponents/NavLink';\nimport { Nav, Body } from 'TMComponents/Typography';\nimport styled from 'styled-components';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport { submenuLinkProps } from 'TMPropTypes/headerProps';\n\nconst MenuItemContainer = styled(FlexWrapper)`\n border-bottom: 4px solid transparent;\n cursor: pointer;\n text-align: center;\n padding: 36px 20px 32px;\n position: relative;\n transition: border-bottom 0.3s;\n white-space: nowrap;\n ${({ itemIsActive, hasSubmenu, theme }) => {\n const underline = `border-bottom: 4px solid ${theme.colorSystem.primary[4]};`;\n const submenuTail = `&:before{\n content:\"\";\n position: absolute;\n bottom: -24px;\n border-left: 20px solid transparent;\n border-right: 20px solid transparent;\n border-bottom: 20px solid ${theme.colorSystem.primary[3]};\n }`;\n\n let css = itemIsActive && underline;\n if (hasSubmenu) {\n css += submenuTail;\n }\n\n return css;\n }}\n`;\n\nexport const MenuItemText = styled(Body)`\n ${Nav}\n color: ${({ theme }) => theme.colorSystem.primary[1]};\n margin: 0;\n ${({ itemIsActive, theme }) =>\n itemIsActive &&\n `\n color: ${theme.colorSystem.primary[4]};\n `}\n`;\n\nexport const MenuLink = styled(NavLink)`\n ${Nav}\n color: ${({ theme }) => theme.colorSystem.primary[1]};\n &:hover {\n color: ${({ theme }) => theme.colorSystem.primary[4]};\n text-decoration: none !important;\n }\n`;\nconst Submenu = styled(FlexWrapper)`\n ${Nav}\n background-color: ${({ theme }) => theme.colorSystem.primary[3]};\n position: absolute;\n ${({ itemIsActive }) =>\n itemIsActive\n ? `\n &:before{\n content: \"\";\n height: 17px;\n width: 100%;\n position: absolute;\n top: -17px;\n left:0;\n }\n &:focus-within{\n transition: none;\n }\n left: 0;\n list-style:none;\n top: 94px;\n transition: opacity 0.3s;\n border-radius:8px;\n height: auto;\n width:max-content;\n padding: 16px 16px 0;\n margin-top:17px;\n opacity: 1;\n`\n : `\n opacity: 0;\n height: 0;\n overflow: hidden;\n padding: 0;\n`};\n`;\n\nconst SubmenuItem = styled(FlexWrapper)`\n align-items: center;\n display: flex;\n justify-content: space-between;\n margin-bottom: 8px;\n a:hover,\n a:focus {\n color: ${({ theme }) => theme.colorSystem.primary[4]};\n text-decoration: none;\n }\n`;\n\nconst SubmenuItemText = styled(Body)`\n margin-bottom: 8px;\n text-transform: initial;\n`;\n\nconst ConditionalWrapper = ({ url, children }) =>\n url ? {children} : children;\n\nconst MenuItem = ({\n title,\n url,\n onHover,\n onHoverStop,\n isActive,\n submenu\n}) => {\n return (\n \n \n \n {title}\n \n {!url && (\n \n {submenu.map(({ id: subId, link, text }) => (\n \n \n \n {text}\n \n \n \n ))}\n \n )}\n \n \n );\n};\n\nexport default MenuItem;\n\nMenuItem.propTypes = {\n title: string.isRequired,\n onHover: func.isRequired,\n onHoverStop: func.isRequired,\n isActive: bool.isRequired,\n url: string,\n submenu: arrayOf(shape(submenuLinkProps)).isRequired\n};\nMenuItem.defaultProps = {\n url: ''\n};\n\nConditionalWrapper.propTypes = {\n url: string,\n children: node.isRequired\n};\nConditionalWrapper.defaultProps = {\n url: ''\n};\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { Breadcrumbs } from 'TMComponents/Breadcrumbs';\nimport Container from 'TMComponents/Container';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport NavLink from 'TMComponents/NavLink';\nimport Img from 'TMComponents/ImageStatic';\nimport { Banner } from 'TMComponents/Banner';\nimport headerProps from 'TMPropTypes/headerProps';\nimport ComponentMapper from 'TMComponents/ComponentMapper';\nimport MenuItem from './MenuItem';\n\nconst Wrapper = styled.div`\n display: block;\n position: ${(props) => (props.hideNav ? 'absolute' : 'fixed')};\n top: 0;\n width: 100%;\n z-index: 15;\n background-color: ${({ theme }) => theme.colorSystem.primary[3]};\n`;\n\nconst ContainerWithBorder = styled(Container)`\n ${({ isTop }) =>\n isTop && 'border-bottom: 1px solid rgba(255, 255, 255, 0.1)'};\n ${({ hideNav }) => hideNav && 'padding-top: 16px'};\n max-width: 1280px;\n height: 120px;\n display: flex;\n`;\n\nconst MenuItemList = styled(FlexWrapper)`\n display: flex;\n list-style: none;\n padding: 0;\n padding-left: 20px;\n padding-right: 40px;\n color: ${({ theme }) => theme.colorSystem.primary[1]};\n`;\n\nconst DesktopHeader = ({\n logo,\n menuItems,\n desktopRightSection = [],\n isTop,\n hideNav,\n banner\n}) => {\n const [hoveringOver, setHoveringOver] = useState(null);\n\n const isRightSectionButton =\n desktopRightSection.length !== 0 &&\n (desktopRightSection[0].__typename === 'DatoCmsButton' ||\n desktopRightSection[0].__typename ===\n 'DatoCmsAppsFlyerButton');\n\n const RightSectionComponent = isRightSectionButton\n ? { ...desktopRightSection[0], ...{ size: 'small' } }\n : desktopRightSection[0];\n\n return (\n \n {banner?.showBanner && }\n \n \n \n \n \n {!hideNav && (\n \n {menuItems.map(\n ({ id, title, url, submenu }) => {\n const itemIsActive =\n id === hoveringOver;\n return (\n \n setHoveringOver(id)\n }\n onHoverStop={() =>\n setHoveringOver(null)\n }\n />\n );\n }\n )}\n \n )}\n {!hideNav && (\n \n )}\n \n \n \n \n );\n};\n\nDesktopHeader.propTypes = headerProps;\n\nexport default DesktopHeader;\n","import React from 'react';\nimport { string } from 'prop-types';\n\nconst Cross = ({ color, ...rest }) => (\n \n \n \n);\n\nCross.propTypes = {\n color: string\n};\n\nCross.defaultProps = {\n color: '#003057'\n};\n\nexport default Cross;\n","import React from 'react';\nimport { string } from 'prop-types';\n\nconst Hamburger = ({ color, ...rest }) => (\n \n \n \n \n \n);\n\nHamburger.propTypes = {\n color: string\n};\n\nHamburger.defaultProps = {\n color: '#003057'\n};\n\nexport default Hamburger;\n","import { func, string } from 'prop-types';\nimport React from 'react';\nimport NavLink from 'TMComponents/NavLink';\nimport { Body, Nav } from 'TMComponents/Typography';\nimport styled from 'styled-components';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport ChevronRight from 'TMComponents/Icons/ChevronRight';\n\nexport const MenuItemContainer = styled(FlexWrapper)`\n display: flex;\n margin: 0 20px;\n outline: none;\n padding: 20px 0;\n ${Nav}\n`;\n\nexport const MenuItemText = styled(Body)`\n margin: 0;\n`;\n\nconst MenuItem = ({ title, url, onClick }) => {\n return (\n \n \n {url ? (\n \n {title}\n \n ) : (\n title\n )}\n \n {!url && }\n \n );\n};\n\nexport default MenuItem;\n\nMenuItem.propTypes = {\n title: string.isRequired,\n onClick: func.isRequired,\n url: string\n};\nMenuItem.defaultProps = {\n url: ''\n};\n","import React, { useState, useEffect, useContext } from 'react';\nimport styled, { ThemeContext } from 'styled-components';\nimport { Breadcrumbs } from 'TMComponents/Breadcrumbs';\nimport Img from 'TMComponents/ImageStatic';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport Cross from 'TMComponents/Icons/Cross';\nimport NavLink from 'TMComponents/NavLink';\nimport { Body, Nav } from 'TMComponents/Typography';\nimport ChevronRight from 'TMComponents/Icons/ChevronRight';\nimport Hamburger from 'TMComponents/Icons/Hamburger';\nimport ComponentMapper from 'TMComponents/ComponentMapper';\nimport { Banner } from 'TMComponents/Banner';\nimport headerProps from 'TMPropTypes/headerProps';\nimport { headerHeight } from 'TMConstants';\n\nimport MenuItem, { MenuItemContainer, MenuItemText } from './MenuItem';\n\nconst Wrapper = styled.div`\n position: ${(props) => (props.hideNav ? 'absolute' : 'fixed')};\n width: 100%;\n z-index: 15;\n`;\n\nconst TopBar = styled.div`\n top: 0;\n`;\nconst NavBar = styled(FlexWrapper)`\n align-items: center;\n background-color: ${({ theme }) => theme.colorSystem.primary[3]};\n height: 64px;\n padding: 20px;\n`;\nconst Logo = styled(NavLink)``;\nconst IconWrapper = styled.button`\n background: transparent;\n border: none;\n height: 64px;\n &:focus {\n outline: none;\n }\n`;\nconst Menu = styled.nav`\n ${Nav}\n background-color: ${({ theme }) => theme.colorSystem.primary[3]};\n color: ${(props) => props.theme.colorSystem.primary[1]};\n display: flex;\n flex-direction: column;\n height: calc(100% - ${headerHeight.mobile}px);\n justify-content: space-between;\n left: 0;\n position: fixed;\n top: -100%;\n transition: top 0.3s;\n width: 100%;\n z-index: -1;\n ${(props) =>\n props.isOpen &&\n `\n top: ${headerHeight.mobile}px;\n `};\n`;\nconst MenuList = styled.ul`\n overflow-y: auto;\n padding-left: 0;\n margin-top: 44px;\n`;\n\nconst ChevronLeft = styled(ChevronRight)`\n transform: rotate(180deg);\n`;\nconst SubmenuTitle = styled(MenuItemContainer)`\n align-items: center;\n list-style-type: none;\n p {\n color: ${({ theme }) => theme.colorSystem.primary[4]};\n padding-left: 20px;\n }\n`;\nconst SubmenuInner = styled.ul`\n background-color: ${({ theme }) => theme.colorSystem.primary[3]};\n height: 100%;\n left: ${({ isOn }) => (isOn ? '0' : '100%')};\n list-style: none;\n overflow-x: scroll;\n padding: 0;\n position: absolute;\n top: 0;\n transition: left 0.3s;\n width: 100vw;\n z-index: 20;\n`;\nconst SubmenuItemText = styled(Body)`\n margin: 0;\n text-transform: initial;\n`;\n\nconst BottomSection = styled(FlexWrapper)`\n width: 100%;\n text-align: center;\n margin-top: 20px;\n gap: ${headerHeight.mobile}px;\n`;\n\nconst MobileHeader = ({\n logo,\n mobileBottomSection = [],\n menuItems,\n isTop,\n hideNav,\n banner\n}) => {\n const [menuOpen, setMenuOpen] = useState(false);\n const [selectedId, setSelectedId] = useState(null);\n const { colorSystem } = useContext(ThemeContext);\n\n useEffect(() => {\n document.body.style.overflowY = menuOpen ? 'hidden' : 'auto';\n }, [menuOpen]);\n\n const selectedMenuItem = menuItems.find(({ id }) => id === selectedId);\n\n return (\n \n \n {banner?.showBanner && !menuOpen && }\n \n \n \n \n \n {!hideNav && (\n setMenuOpen(!menuOpen)}\n aria-label=\"Toggle nav menu\">\n {menuOpen ? (\n \n ) : (\n \n )}\n \n )}\n \n \n \n \n \n \n {menuItems.map(({ id, title, url }) => (\n {\n if (url) {\n setMenuOpen(false);\n } else {\n setSelectedId(id);\n }\n }}\n />\n ))}\n \n {selectedMenuItem && (\n
\n setSelectedId(null)}>\n \n \n {selectedMenuItem.title}\n \n \n {selectedMenuItem.submenu.map(\n ({ id, link, text }) => (\n
\n \n {\n setSelectedId(\n null\n );\n setMenuOpen(false);\n }}\n currentRowSelected={\n id === selectedId\n }\n data-testid={`row-${text}`}>\n \n {text}\n \n \n \n
\n )\n )}\n
\n )}\n
\n {!selectedMenuItem && (\n \n {mobileBottomSection.map((item) => (\n setMenuOpen(false)}\n />\n ))}\n \n )}\n
\n
\n
\n );\n};\n\nMobileHeader.propTypes = headerProps;\n\nexport default MobileHeader;\n","import React, { useEffect, useState } from 'react';\nimport { useStaticQuery, graphql } from 'gatsby';\nimport { bool } from 'prop-types';\nimport debounce from 'TMUtils/debounce';\nimport { breakpoints } from 'TMConstants';\nimport DesktopHeader from './DesktopHeader';\nimport MobileHeader from './MobileHeader';\n\nexport const isTopCheck = (isTop, updateIsTop) => {\n if (window.pageYOffset > 0 && isTop) {\n updateIsTop(false);\n }\n\n if (window.pageYOffset === 0 && !isTop) {\n updateIsTop(true);\n }\n};\n\nconst Header = ({ hideNav }) => {\n const { header, banner } = useStaticQuery(graphql`\n {\n banner: datoCmsSiteBanner {\n showBanner\n backgroundPrimaryColour {\n hex\n }\n image {\n gatsbyImageData(\n width: 50\n layout: FIXED\n imgixParams: { auto: \"compress\" }\n )\n }\n structuredContent {\n value\n }\n textColour {\n hex\n }\n showButton\n buttonText\n buttonLink\n desktopButtonLink\n }\n header: datoCmsHeader {\n logo {\n alt\n gatsbyImageData(layout: CONSTRAINED)\n }\n desktopRightSection {\n ...buttonFields\n }\n mobileBottomSection {\n ...appsFlyerButtonFields\n ...buttonFields\n ... on DatoCmsImage {\n __typename\n id: originalId\n image {\n gatsbyImageData(\n width: 350\n layout: CONSTRAINED\n imgixParams: { auto: \"compress\" }\n )\n }\n maxWidth\n link\n whiteBackground\n hideOnDesktop\n hideOnMobile\n }\n }\n menuItems {\n ... on DatoCmsHeaderMenuItem {\n __typename\n id\n title\n url\n submenu {\n ... on DatoCmsSubmenuLink {\n __typename\n id\n text\n link\n }\n }\n }\n }\n }\n }\n `);\n\n const [viewportWidth, setViewportWidth] = useState(null);\n const [isTop, updateIsTop] = useState(true);\n\n useEffect(() => {\n /* istanbul ignore next */\n if (window.location.href.includes('#') && isTop) {\n updateIsTop(false);\n }\n }, []);\n\n /* istanbul ignore next */\n const isTopHandler = () => {\n isTopCheck(isTop, updateIsTop);\n };\n\n const onResizeHandler = () => {\n setViewportWidth(window.innerWidth);\n };\n\n useEffect(() => {\n window.addEventListener('scroll', isTopHandler);\n return () => {\n window.removeEventListener('scroll', isTopHandler);\n };\n }, [isTop]);\n\n useEffect(() => {\n if (!viewportWidth) setViewportWidth(window.innerWidth);\n window.addEventListener('resize', debounce(onResizeHandler, 100));\n return () => {\n window.removeEventListener(\n 'resize',\n debounce(onResizeHandler, 100)\n );\n };\n }, [viewportWidth]);\n\n const { logo, ...rest } = header;\n\n const headerProps = {\n ...rest,\n isTop,\n hideNav\n };\n\n return (\n
\n {viewportWidth < breakpoints.laptop ? (\n \n ) : (\n \n )}\n
\n );\n};\n\nHeader.propTypes = {\n hideNav: bool\n};\n\nHeader.defaultProps = {\n hideNav: false\n};\n\nexport default Header;\n","/* eslint-disable local-rules/disallow-side-effects */\n/**\n * Keep references on console methods to avoid triggering patched behaviors\n *\n * NB: in some setup, console could already be patched by another SDK.\n * In this case, some display messages can be sent by the other SDK\n * but we should be safe from infinite loop nonetheless.\n */\nexport var ConsoleApiName = {\n log: 'log',\n debug: 'debug',\n info: 'info',\n warn: 'warn',\n error: 'error',\n};\n/**\n * When building JS bundles, some users might use a plugin[1] or configuration[2] to remove\n * \"console.*\" references. This causes some issue as we expect `console.*` to be defined.\n * As a workaround, let's use a variable alias, so those expressions won't be taken into account by\n * simple static analysis.\n *\n * [1]: https://babeljs.io/docs/babel-plugin-transform-remove-console/\n * [2]: https://github.com/terser/terser#compress-options (look for drop_console)\n */\nexport var globalConsole = console;\nexport var originalConsoleMethods = {};\nObject.keys(ConsoleApiName).forEach(function (name) {\n originalConsoleMethods[name] = globalConsole[name];\n});\nvar PREFIX = 'Datadog Browser SDK:';\nexport var display = {\n debug: originalConsoleMethods.debug.bind(globalConsole, PREFIX),\n log: originalConsoleMethods.log.bind(globalConsole, PREFIX),\n info: originalConsoleMethods.info.bind(globalConsole, PREFIX),\n warn: originalConsoleMethods.warn.bind(globalConsole, PREFIX),\n error: originalConsoleMethods.error.bind(globalConsole, PREFIX),\n};\nexport var DOCS_ORIGIN = 'https://docs.datadoghq.com';\nexport var DOCS_TROUBLESHOOTING = \"\".concat(DOCS_ORIGIN, \"/real_user_monitoring/browser/troubleshooting\");\nexport var MORE_DETAILS = 'More details:';\n//# sourceMappingURL=display.js.map","import { display } from './display';\nexport function catchUserErrors(fn, errorMsg) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n try {\n return fn.apply(void 0, args);\n }\n catch (err) {\n display.error(errorMsg, err);\n }\n };\n}\n//# sourceMappingURL=catchUserErrors.js.map","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { display } from './display';\nvar onMonitorErrorCollected;\nvar debugMode = false;\nexport function startMonitorErrorCollection(newOnMonitorErrorCollected) {\n onMonitorErrorCollected = newOnMonitorErrorCollected;\n}\nexport function setDebugMode(newDebugMode) {\n debugMode = newDebugMode;\n}\nexport function resetMonitor() {\n onMonitorErrorCollected = undefined;\n debugMode = false;\n}\nexport function monitored(_, __, descriptor) {\n var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var decorated = onMonitorErrorCollected ? monitor(originalMethod) : originalMethod;\n return decorated.apply(this, args);\n };\n}\nexport function monitor(fn) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return callMonitored(fn, this, arguments);\n }; // consider output type has input type\n}\nexport function callMonitored(fn, context, args) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return fn.apply(context, args);\n }\n catch (e) {\n displayIfDebugEnabled(e);\n if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e);\n }\n catch (e) {\n displayIfDebugEnabled(e);\n }\n }\n }\n}\nexport function displayIfDebugEnabled() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (debugMode) {\n display.error.apply(display, __spreadArray(['[MONITOR]'], args, false));\n }\n}\n//# sourceMappingURL=monitor.js.map","export function includes(candidate, search) {\n return candidate.indexOf(search) !== -1;\n}\nexport function arrayFrom(arrayLike) {\n if (Array.from) {\n return Array.from(arrayLike);\n }\n var array = [];\n if (arrayLike instanceof Set) {\n arrayLike.forEach(function (item) { return array.push(item); });\n }\n else {\n for (var i = 0; i < arrayLike.length; i++) {\n array.push(arrayLike[i]);\n }\n }\n return array;\n}\nexport function find(array, predicate) {\n for (var i = 0; i < array.length; i += 1) {\n var item = array[i];\n if (predicate(item, i)) {\n return item;\n }\n }\n return undefined;\n}\nexport function findLast(array, predicate) {\n for (var i = array.length - 1; i >= 0; i -= 1) {\n var item = array[i];\n if (predicate(item, i, array)) {\n return item;\n }\n }\n return undefined;\n}\nexport function forEach(list, callback) {\n Array.prototype.forEach.call(list, callback);\n}\nexport function objectValues(object) {\n return Object.keys(object).map(function (key) { return object[key]; });\n}\nexport function objectEntries(object) {\n return Object.keys(object).map(function (key) { return [key, object[key]]; });\n}\nexport function startsWith(candidate, search) {\n return candidate.slice(0, search.length) === search;\n}\nexport function endsWith(candidate, search) {\n return candidate.slice(-search.length) === search;\n}\nexport function assign(target) {\n var toAssign = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n toAssign[_i - 1] = arguments[_i];\n }\n toAssign.forEach(function (source) {\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n });\n return target;\n}\n//# sourceMappingURL=polyfills.js.map","/**\n * inspired by https://mathiasbynens.be/notes/globalthis\n */\nexport function getGlobalObject() {\n if (typeof globalThis === 'object') {\n return globalThis;\n }\n Object.defineProperty(Object.prototype, '_dd_temp_', {\n get: function () {\n return this;\n },\n configurable: true,\n });\n // @ts-ignore _dd_temp is defined using defineProperty\n var globalObject = _dd_temp_;\n // @ts-ignore _dd_temp is defined using defineProperty\n delete Object.prototype._dd_temp_;\n if (typeof globalObject !== 'object') {\n // on safari _dd_temp_ is available on window but not globally\n // fallback on other browser globals check\n if (typeof self === 'object') {\n globalObject = self;\n }\n else if (typeof window === 'object') {\n globalObject = window;\n }\n else {\n globalObject = {};\n }\n }\n return globalObject;\n}\n//# sourceMappingURL=getGlobalObject.js.map","export var ONE_KIBI_BYTE = 1024;\nexport var ONE_MEBI_BYTE = 1024 * ONE_KIBI_BYTE;\n// eslint-disable-next-line no-control-regex\nvar HAS_MULTI_BYTES_CHARACTERS = /[^\\u0000-\\u007F]/;\nexport function computeBytesCount(candidate) {\n // Accurate bytes count computations can degrade performances when there is a lot of events to process\n if (!HAS_MULTI_BYTES_CHARACTERS.test(candidate)) {\n return candidate.length;\n }\n if (window.TextEncoder !== undefined) {\n return new TextEncoder().encode(candidate).length;\n }\n return new Blob([candidate]).size;\n}\nexport function concatBuffers(buffers) {\n var length = buffers.reduce(function (total, buffer) { return total + buffer.length; }, 0);\n var result = new Uint8Array(length);\n var offset = 0;\n for (var _i = 0, buffers_1 = buffers; _i < buffers_1.length; _i++) {\n var buffer = buffers_1[_i];\n result.set(buffer, offset);\n offset += buffer.length;\n }\n return result;\n}\n//# sourceMappingURL=byteUtils.js.map","import { getGlobalObject } from './getGlobalObject';\n/**\n * Gets the original value for a DOM API that was potentially patched by Zone.js.\n *\n * Zone.js[1] is a library that patches a bunch of JS and DOM APIs. It usually stores the original\n * value of the patched functions/constructors/methods in a hidden property prefixed by\n * __zone_symbol__.\n *\n * In multiple occasions, we observed that Zone.js is the culprit of important issues leading to\n * browser resource exhaustion (memory leak, high CPU usage). This method is used as a workaround to\n * use the original DOM API instead of the one patched by Zone.js.\n *\n * [1]: https://github.com/angular/angular/tree/main/packages/zone.js\n */\nexport function getZoneJsOriginalValue(target, name) {\n var browserWindow = getGlobalObject();\n var original;\n if (browserWindow.Zone && typeof browserWindow.Zone.__symbol__ === 'function') {\n original = target[browserWindow.Zone.__symbol__(name)];\n }\n if (!original) {\n original = target[name];\n }\n return original;\n}\n//# sourceMappingURL=getZoneJsOriginalValue.js.map","import { getZoneJsOriginalValue } from './getZoneJsOriginalValue';\nimport { monitor } from './monitor';\nimport { getGlobalObject } from './getGlobalObject';\nexport function setTimeout(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setTimeout')(monitor(callback), delay);\n}\nexport function clearTimeout(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearTimeout')(timeoutId);\n}\nexport function setInterval(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setInterval')(monitor(callback), delay);\n}\nexport function clearInterval(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearInterval')(timeoutId);\n}\n//# sourceMappingURL=timer.js.map","import { setTimeout, clearTimeout } from '../timer';\n// use lodash API\nexport function throttle(fn, wait, options) {\n var needLeadingExecution = options && options.leading !== undefined ? options.leading : true;\n var needTrailingExecution = options && options.trailing !== undefined ? options.trailing : true;\n var inWaitPeriod = false;\n var pendingExecutionWithParameters;\n var pendingTimeoutId;\n return {\n throttled: function () {\n var parameters = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n parameters[_i] = arguments[_i];\n }\n if (inWaitPeriod) {\n pendingExecutionWithParameters = parameters;\n return;\n }\n if (needLeadingExecution) {\n fn.apply(void 0, parameters);\n }\n else {\n pendingExecutionWithParameters = parameters;\n }\n inWaitPeriod = true;\n pendingTimeoutId = setTimeout(function () {\n if (needTrailingExecution && pendingExecutionWithParameters) {\n fn.apply(void 0, pendingExecutionWithParameters);\n }\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n }, wait);\n },\n cancel: function () {\n clearTimeout(pendingTimeoutId);\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n },\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() { }\n//# sourceMappingURL=functionUtils.js.map","import { noop } from '../utils/functionUtils';\n/**\n * Custom implementation of JSON.stringify that ignores some toJSON methods. We need to do that\n * because some sites badly override toJSON on certain objects. Removing all toJSON methods from\n * nested values would be too costly, so we just detach them from the root value, and native classes\n * used to build JSON values (Array and Object).\n *\n * Note: this still assumes that JSON.stringify is correct.\n */\nexport function jsonStringify(value, replacer, space) {\n if (typeof value !== 'object' || value === null) {\n return JSON.stringify(value);\n }\n // Note: The order matter here. We need to detach toJSON methods on parent classes before their\n // subclasses.\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n var restoreValuePrototypeToJson = detachToJsonMethod(Object.getPrototypeOf(value));\n var restoreValueToJson = detachToJsonMethod(value);\n try {\n return JSON.stringify(value, replacer, space);\n }\n catch (_a) {\n return '';\n }\n finally {\n restoreObjectPrototypeToJson();\n restoreArrayPrototypeToJson();\n restoreValuePrototypeToJson();\n restoreValueToJson();\n }\n}\nexport function detachToJsonMethod(value) {\n var object = value;\n var objectToJson = object.toJSON;\n if (objectToJson) {\n delete object.toJSON;\n return function () {\n object.toJSON = objectToJson;\n };\n }\n return noop;\n}\n//# sourceMappingURL=jsonStringify.js.map","import { assign } from './polyfills';\nexport function shallowClone(object) {\n return assign({}, object);\n}\nexport function objectHasValue(object, value) {\n return Object.keys(object).some(function (key) { return object[key] === value; });\n}\nexport function isEmptyObject(object) {\n return Object.keys(object).length === 0;\n}\nexport function mapValues(object, fn) {\n var newObject = {};\n for (var _i = 0, _a = Object.keys(object); _i < _a.length; _i++) {\n var key = _a[_i];\n newObject[key] = fn(object[key]);\n }\n return newObject;\n}\n//# sourceMappingURL=objectUtils.js.map","import { ONE_KIBI_BYTE, computeBytesCount } from '../../tools/utils/byteUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { DOCS_TROUBLESHOOTING, MORE_DETAILS, display } from '../../tools/display';\nimport { isEmptyObject } from '../../tools/utils/objectUtils';\n// RUM and logs batch bytes limit is 16KB\n// ensure that we leave room for other event attributes and maintain a decent amount of event per batch\n// (3KB (customer data) + 1KB (other attributes)) * 4 (events per batch) = 16KB\nexport var CUSTOMER_DATA_BYTES_LIMIT = 3 * ONE_KIBI_BYTE;\n// We observed that the compression ratio is around 8 in general, but we also want to keep a margin\n// because some data might not be compressed (ex: last view update on page exit). We chose 16KiB\n// because it is also the limit of the 'batchBytesCount' that we use for RUM and Logs data, but this\n// is a bit arbitrary.\nexport var CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT = 16 * ONE_KIBI_BYTE;\nexport var BYTES_COMPUTATION_THROTTLING_DELAY = 200;\nexport function createCustomerDataTrackerManager(compressionStatus) {\n if (compressionStatus === void 0) { compressionStatus = 2 /* CustomerDataCompressionStatus.Disabled */; }\n var customerDataTrackers = new Map();\n var alreadyWarned = false;\n function checkCustomerDataLimit(initialBytesCount) {\n if (initialBytesCount === void 0) { initialBytesCount = 0; }\n if (alreadyWarned || compressionStatus === 0 /* CustomerDataCompressionStatus.Unknown */) {\n return;\n }\n var bytesCountLimit = compressionStatus === 2 /* CustomerDataCompressionStatus.Disabled */\n ? CUSTOMER_DATA_BYTES_LIMIT\n : CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT;\n var bytesCount = initialBytesCount;\n customerDataTrackers.forEach(function (tracker) {\n bytesCount += tracker.getBytesCount();\n });\n if (bytesCount > bytesCountLimit) {\n displayCustomerDataLimitReachedWarning(bytesCountLimit);\n alreadyWarned = true;\n }\n }\n return {\n /**\n * Creates a detached tracker. The manager will not store a reference to that tracker, and the\n * bytes count will be counted independently from other detached trackers.\n *\n * This is particularly useful when we don't know when the tracker will be unused, so we don't\n * leak memory (ex: when used in Logger instances).\n */\n createDetachedTracker: function () {\n var tracker = createCustomerDataTracker(function () { return checkCustomerDataLimit(tracker.getBytesCount()); });\n return tracker;\n },\n /**\n * Creates a tracker if it doesn't exist, and returns it.\n */\n getOrCreateTracker: function (type) {\n if (!customerDataTrackers.has(type)) {\n customerDataTrackers.set(type, createCustomerDataTracker(checkCustomerDataLimit));\n }\n return customerDataTrackers.get(type);\n },\n setCompressionStatus: function (newCompressionStatus) {\n if (compressionStatus === 0 /* CustomerDataCompressionStatus.Unknown */) {\n compressionStatus = newCompressionStatus;\n checkCustomerDataLimit();\n }\n },\n getCompressionStatus: function () { return compressionStatus; },\n stop: function () {\n customerDataTrackers.forEach(function (tracker) { return tracker.stop(); });\n customerDataTrackers.clear();\n },\n };\n}\nexport function createCustomerDataTracker(checkCustomerDataLimit) {\n var bytesCountCache = 0;\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call context APIs synchronously multiple times in a row\n var _a = throttle(function (context) {\n bytesCountCache = computeBytesCount(jsonStringify(context));\n checkCustomerDataLimit();\n }, BYTES_COMPUTATION_THROTTLING_DELAY), computeBytesCountThrottled = _a.throttled, cancelComputeBytesCount = _a.cancel;\n var resetBytesCount = function () {\n cancelComputeBytesCount();\n bytesCountCache = 0;\n };\n return {\n updateCustomerData: function (context) {\n if (isEmptyObject(context)) {\n resetBytesCount();\n }\n else {\n computeBytesCountThrottled(context);\n }\n },\n resetCustomerData: resetBytesCount,\n getBytesCount: function () { return bytesCountCache; },\n stop: function () {\n cancelComputeBytesCount();\n },\n };\n}\nfunction displayCustomerDataLimitReachedWarning(bytesCountLimit) {\n display.warn(\"Customer data exceeds the recommended \".concat(bytesCountLimit / ONE_KIBI_BYTE, \"KiB threshold. \").concat(MORE_DETAILS, \" \").concat(DOCS_TROUBLESHOOTING, \"/#customer-data-exceeds-the-recommended-threshold-warning\"));\n}\n//# sourceMappingURL=customerDataTracker.js.map","/**\n * Similar to `typeof`, but distinguish plain objects from `null` and arrays\n */\nexport function getType(value) {\n if (value === null) {\n return 'null';\n }\n if (Array.isArray(value)) {\n return 'array';\n }\n return typeof value;\n}\n//# sourceMappingURL=typeUtils.js.map","import { getType } from './utils/typeUtils';\n/**\n * Iterate over source and affect its sub values into destination, recursively.\n * If the source and destination can't be merged, return source.\n */\nexport function mergeInto(destination, source, circularReferenceChecker) {\n if (circularReferenceChecker === void 0) { circularReferenceChecker = createCircularReferenceChecker(); }\n // ignore the source if it is undefined\n if (source === undefined) {\n return destination;\n }\n if (typeof source !== 'object' || source === null) {\n // primitive values - just return source\n return source;\n }\n else if (source instanceof Date) {\n return new Date(source.getTime());\n }\n else if (source instanceof RegExp) {\n var flags = source.flags ||\n // old browsers compatibility\n [\n source.global ? 'g' : '',\n source.ignoreCase ? 'i' : '',\n source.multiline ? 'm' : '',\n source.sticky ? 'y' : '',\n source.unicode ? 'u' : '',\n ].join('');\n return new RegExp(source.source, flags);\n }\n if (circularReferenceChecker.hasAlreadyBeenSeen(source)) {\n // remove circular references\n return undefined;\n }\n else if (Array.isArray(source)) {\n var merged_1 = Array.isArray(destination) ? destination : [];\n for (var i = 0; i < source.length; ++i) {\n merged_1[i] = mergeInto(merged_1[i], source[i], circularReferenceChecker);\n }\n return merged_1;\n }\n var merged = getType(destination) === 'object' ? destination : {};\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n merged[key] = mergeInto(merged[key], source[key], circularReferenceChecker);\n }\n }\n return merged;\n}\n/**\n * A simplistic implementation of a deep clone algorithm.\n * Caveats:\n * - It doesn't maintain prototype chains - don't use with instances of custom classes.\n * - It doesn't handle Map and Set\n */\nexport function deepClone(value) {\n return mergeInto(undefined, value);\n}\nexport function combine() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n var destination;\n for (var _a = 0, sources_1 = sources; _a < sources_1.length; _a++) {\n var source = sources_1[_a];\n // Ignore any undefined or null sources.\n if (source === undefined || source === null) {\n continue;\n }\n destination = mergeInto(destination, source);\n }\n return destination;\n}\nfunction createCircularReferenceChecker() {\n if (typeof WeakSet !== 'undefined') {\n var set_1 = new WeakSet();\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = set_1.has(value);\n if (!has) {\n set_1.add(value);\n }\n return has;\n },\n };\n }\n var array = [];\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = array.indexOf(value) >= 0;\n if (!has) {\n array.push(value);\n }\n return has;\n },\n };\n}\n//# sourceMappingURL=mergeInto.js.map","import { display } from '../display';\nimport { ONE_KIBI_BYTE } from '../utils/byteUtils';\nimport { detachToJsonMethod } from './jsonStringify';\n// The maximum size of a single event is 256KiB. By default, we ensure that user-provided data\n// going through sanitize fits inside our events, while leaving room for other contexts, metadata, ...\nvar SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE;\n// Symbol for the root element of the JSONPath used for visited objects\nvar JSON_PATH_ROOT_ELEMENT = '$';\n// When serializing (using JSON.stringify) a key of an object, { key: 42 } gets wrapped in quotes as \"key\".\n// With the separator (:), we need to add 3 characters to the count.\nvar KEY_DECORATION_LENGTH = 3;\nexport function sanitize(source, maxCharacterCount) {\n if (maxCharacterCount === void 0) { maxCharacterCount = SANITIZE_DEFAULT_MAX_CHARACTER_COUNT; }\n // Unbind any toJSON function we may have on [] or {} prototypes\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object\n var containerQueue = [];\n var visitedObjectsWithPath = new WeakMap();\n var sanitizedData = sanitizeProcessor(source, JSON_PATH_ROOT_ELEMENT, undefined, containerQueue, visitedObjectsWithPath);\n var serializedSanitizedData = JSON.stringify(sanitizedData);\n var accumulatedCharacterCount = serializedSanitizedData ? serializedSanitizedData.length : 0;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'discarded', source);\n return undefined;\n }\n while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {\n var containerToProcess = containerQueue.shift();\n var separatorLength = 0; // 0 for the first element, 1 for subsequent elements\n // Arrays and Objects have to be handled distinctly to ensure\n // we do not pick up non-numerical properties from Arrays\n if (Array.isArray(containerToProcess.source)) {\n for (var key = 0; key < containerToProcess.source.length; key++) {\n var targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);\n if (targetData !== undefined) {\n accumulatedCharacterCount += JSON.stringify(targetData).length;\n }\n else {\n // When an element of an Array (targetData) is undefined, it is serialized as null:\n // JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters\n accumulatedCharacterCount += 4;\n }\n accumulatedCharacterCount += separatorLength;\n separatorLength = 1;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source);\n break;\n }\n ;\n containerToProcess.target[key] = targetData;\n }\n }\n else {\n for (var key in containerToProcess.source) {\n if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {\n var targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);\n // When a property of an object has an undefined value, it will be dropped during serialization:\n // JSON.stringify({a:undefined}) => '{}'\n if (targetData !== undefined) {\n accumulatedCharacterCount +=\n JSON.stringify(targetData).length + separatorLength + key.length + KEY_DECORATION_LENGTH;\n separatorLength = 1;\n }\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source);\n break;\n }\n ;\n containerToProcess.target[key] = targetData;\n }\n }\n }\n }\n // Rebind detached toJSON functions\n restoreObjectPrototypeToJson();\n restoreArrayPrototypeToJson();\n return sanitizedData;\n}\n/**\n * Internal function to factorize the process common to the\n * initial call to sanitize, and iterations for Arrays and Objects\n *\n */\nfunction sanitizeProcessor(source, parentPath, key, queue, visitedObjectsWithPath) {\n // Start by handling toJSON, as we want to sanitize its output\n var sourceToSanitize = tryToApplyToJSON(source);\n if (!sourceToSanitize || typeof sourceToSanitize !== 'object') {\n return sanitizePrimitivesAndFunctions(sourceToSanitize);\n }\n var sanitizedSource = sanitizeObjects(sourceToSanitize);\n if (sanitizedSource !== '[Object]' && sanitizedSource !== '[Array]' && sanitizedSource !== '[Error]') {\n return sanitizedSource;\n }\n // Handle potential cyclic references\n // We need to use source as sourceToSanitize could be a reference to a new object\n // At this stage, we know the source is an object type\n var sourceAsObject = source;\n if (visitedObjectsWithPath.has(sourceAsObject)) {\n return \"[Reference seen at \".concat(visitedObjectsWithPath.get(sourceAsObject), \"]\");\n }\n // Add processed source to queue\n var currentPath = key !== undefined ? \"\".concat(parentPath, \".\").concat(key) : parentPath;\n var target = Array.isArray(sourceToSanitize) ? [] : {};\n visitedObjectsWithPath.set(sourceAsObject, currentPath);\n queue.push({ source: sourceToSanitize, target: target, path: currentPath });\n return target;\n}\n/**\n * Handles sanitization of simple, non-object types\n *\n */\nfunction sanitizePrimitivesAndFunctions(value) {\n // BigInt cannot be serialized by JSON.stringify(), convert it to a string representation\n if (typeof value === 'bigint') {\n return \"[BigInt] \".concat(value.toString());\n }\n // Functions cannot be serialized by JSON.stringify(). Moreover, if a faulty toJSON is present, it needs to be converted\n // so it won't prevent stringify from serializing later\n if (typeof value === 'function') {\n return \"[Function] \".concat(value.name || 'unknown');\n }\n // JSON.stringify() does not serialize symbols.\n if (typeof value === 'symbol') {\n return \"[Symbol] \".concat(value.description || value.toString());\n }\n return value;\n}\n/**\n * Handles sanitization of object types\n *\n * LIMITATIONS\n * - If a class defines a toStringTag Symbol, it will fall in the catch-all method and prevent enumeration of properties.\n * To avoid this, a toJSON method can be defined.\n * - IE11 does not return a distinct type for objects such as Map, WeakMap, ... These objects will pass through and their\n * properties enumerated if any.\n *\n */\nfunction sanitizeObjects(value) {\n try {\n // Handle events - Keep a simple implementation to avoid breaking changes\n if (value instanceof Event) {\n return {\n isTrusted: value.isTrusted,\n };\n }\n // Handle all remaining object types in a generic way\n var result = Object.prototype.toString.call(value);\n var match = result.match(/\\[object (.*)\\]/);\n if (match && match[1]) {\n return \"[\".concat(match[1], \"]\");\n }\n }\n catch (_a) {\n // If the previous serialization attempts failed, and we cannot convert using\n // Object.prototype.toString, declare the value unserializable\n }\n return '[Unserializable]';\n}\n/**\n * Checks if a toJSON function exists and tries to execute it\n *\n */\nfunction tryToApplyToJSON(value) {\n var object = value;\n if (object && typeof object.toJSON === 'function') {\n try {\n return object.toJSON();\n }\n catch (_a) {\n // If toJSON fails, we continue by trying to serialize the value manually\n }\n }\n return value;\n}\n/**\n * Helper function to display the warning when the accumulated character count is over the limit\n */\nfunction warnOverCharacterLimit(maxCharacterCount, changeType, source) {\n display.warn(\"The data provided has been \".concat(changeType, \" as it is over the limit of \").concat(maxCharacterCount, \" characters:\"), source);\n}\n//# sourceMappingURL=sanitize.js.map","// eslint-disable-next-line no-restricted-syntax\nvar Observable = /** @class */ (function () {\n function Observable(onFirstSubscribe) {\n this.onFirstSubscribe = onFirstSubscribe;\n this.observers = [];\n }\n Observable.prototype.subscribe = function (f) {\n var _this = this;\n this.observers.push(f);\n if (this.observers.length === 1 && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe(this) || undefined;\n }\n return {\n unsubscribe: function () {\n _this.observers = _this.observers.filter(function (other) { return f !== other; });\n if (!_this.observers.length && _this.onLastUnsubscribe) {\n _this.onLastUnsubscribe();\n }\n },\n };\n };\n Observable.prototype.notify = function (data) {\n this.observers.forEach(function (observer) { return observer(data); });\n };\n return Observable;\n}());\nexport { Observable };\nexport function mergeObservables() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return new Observable(function (globalObservable) {\n var subscriptions = observables.map(function (observable) {\n return observable.subscribe(function (data) { return globalObservable.notify(data); });\n });\n return function () { return subscriptions.forEach(function (subscription) { return subscription.unsubscribe(); }); };\n });\n}\n//# sourceMappingURL=observable.js.map","import { deepClone } from '../../tools/mergeInto';\nimport { getType } from '../../tools/utils/typeUtils';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { Observable } from '../../tools/observable';\nexport function createContextManager(customerDataTracker) {\n var context = {};\n var changeObservable = new Observable();\n var contextManager = {\n getContext: function () { return deepClone(context); },\n setContext: function (newContext) {\n if (getType(newContext) === 'object') {\n context = sanitize(newContext);\n customerDataTracker && customerDataTracker.updateCustomerData(context);\n }\n else {\n contextManager.clearContext();\n }\n changeObservable.notify();\n },\n setContextProperty: function (key, property) {\n context[key] = sanitize(property);\n customerDataTracker && customerDataTracker.updateCustomerData(context);\n changeObservable.notify();\n },\n removeContextProperty: function (key) {\n delete context[key];\n customerDataTracker && customerDataTracker.updateCustomerData(context);\n changeObservable.notify();\n },\n clearContext: function () {\n context = {};\n customerDataTracker && customerDataTracker.resetCustomerData();\n changeObservable.notify();\n },\n changeObservable: changeObservable,\n };\n return contextManager;\n}\n//# sourceMappingURL=contextManager.js.map","import { Observable } from '../tools/observable';\nexport var TrackingConsent = {\n GRANTED: 'granted',\n NOT_GRANTED: 'not-granted',\n};\nexport function createTrackingConsentState(currentConsent) {\n var observable = new Observable();\n return {\n tryToInit: function (trackingConsent) {\n if (!currentConsent) {\n currentConsent = trackingConsent;\n }\n },\n update: function (trackingConsent) {\n currentConsent = trackingConsent;\n observable.notify();\n },\n isGranted: function () {\n return currentConsent === TrackingConsent.GRANTED;\n },\n observable: observable,\n };\n}\n//# sourceMappingURL=trackingConsent.js.map","import { monitor } from '../tools/monitor';\nimport { getZoneJsOriginalValue } from '../tools/getZoneJsOriginalValue';\n/**\n * Add an event listener to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n */\nexport function addEventListener(configuration, eventTarget, eventName, listener, options) {\n return addEventListeners(configuration, eventTarget, [eventName], listener, options);\n}\n/**\n * Add event listeners to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n *\n * * with `once: true`, the listener will be called at most once, even if different events are listened\n */\nexport function addEventListeners(configuration, eventTarget, eventNames, listener, _a) {\n var _b = _a === void 0 ? {} : _a, once = _b.once, capture = _b.capture, passive = _b.passive;\n var listenerWithMonitor = monitor(function (event) {\n if (!event.isTrusted && !event.__ddIsTrusted && !configuration.allowUntrustedEvents) {\n return;\n }\n if (once) {\n stop();\n }\n listener(event);\n });\n var options = passive ? { capture: capture, passive: passive } : capture;\n var add = getZoneJsOriginalValue(eventTarget, 'addEventListener');\n eventNames.forEach(function (eventName) { return add.call(eventTarget, eventName, listenerWithMonitor, options); });\n function stop() {\n var remove = getZoneJsOriginalValue(eventTarget, 'removeEventListener');\n eventNames.forEach(function (eventName) { return remove.call(eventTarget, eventName, listenerWithMonitor, options); });\n }\n return {\n stop: stop,\n };\n}\n//# sourceMappingURL=addEventListener.js.map","import { addEventListener } from '../../browser/addEventListener';\nimport { combine } from '../../tools/mergeInto';\nvar CONTEXT_STORE_KEY_PREFIX = '_dd_c';\nvar storageListeners = [];\nexport function storeContextManager(configuration, contextManager, productKey, customerDataType) {\n var storageKey = buildStorageKey(productKey, customerDataType);\n storageListeners.push(addEventListener(configuration, window, \"storage\" /* DOM_EVENT.STORAGE */, function (_a) {\n var key = _a.key;\n if (storageKey === key) {\n synchronizeWithStorage();\n }\n }));\n contextManager.changeObservable.subscribe(dumpToStorage);\n contextManager.setContext(combine(getFromStorage(), contextManager.getContext()));\n function synchronizeWithStorage() {\n contextManager.setContext(getFromStorage());\n }\n function dumpToStorage() {\n localStorage.setItem(storageKey, JSON.stringify(contextManager.getContext()));\n }\n function getFromStorage() {\n var rawContext = localStorage.getItem(storageKey);\n return rawContext !== null ? JSON.parse(rawContext) : {};\n }\n}\nexport function buildStorageKey(productKey, customerDataType) {\n return \"\".concat(CONTEXT_STORE_KEY_PREFIX, \"_\").concat(productKey, \"_\").concat(customerDataType);\n}\nexport function removeStorageListeners() {\n storageListeners.map(function (listener) { return listener.stop(); });\n}\n//# sourceMappingURL=storeContextManager.js.map","import { computeBytesCount } from './utils/byteUtils';\nexport function createIdentityEncoder() {\n var output = '';\n var outputBytesCount = 0;\n return {\n isAsync: false,\n get isEmpty() {\n return !output;\n },\n write: function (data, callback) {\n var additionalEncodedBytesCount = computeBytesCount(data);\n outputBytesCount += additionalEncodedBytesCount;\n output += data;\n if (callback) {\n callback(additionalEncodedBytesCount);\n }\n },\n finish: function (callback) {\n callback(this.finishSync());\n },\n finishSync: function () {\n var result = {\n output: output,\n outputBytesCount: outputBytesCount,\n rawBytesCount: outputBytesCount,\n pendingData: '',\n };\n output = '';\n outputBytesCount = 0;\n return result;\n },\n estimateEncodedBytesCount: function (data) {\n return data.length;\n },\n };\n}\n//# sourceMappingURL=encoder.js.map","/**\n * Cross-browser stack trace computation.\n *\n * Reference implementation: https://github.com/csnover/TraceKit/blob/04530298073c3823de72deb0b97e7b38ca7bcb59/tracekit.js\n */\nimport { startsWith } from '../utils/polyfills';\nvar UNKNOWN_FUNCTION = '?';\nexport function computeStackTrace(ex) {\n var stack = [];\n var stackProperty = tryToGetString(ex, 'stack');\n var exString = String(ex);\n if (stackProperty && startsWith(stackProperty, exString)) {\n stackProperty = stackProperty.slice(exString.length);\n }\n if (stackProperty) {\n stackProperty.split('\\n').forEach(function (line) {\n var stackFrame = parseChromeLine(line) || parseChromeAnonymousLine(line) || parseWinLine(line) || parseGeckoLine(line);\n if (stackFrame) {\n if (!stackFrame.func && stackFrame.line) {\n stackFrame.func = UNKNOWN_FUNCTION;\n }\n stack.push(stackFrame);\n }\n });\n }\n return {\n message: tryToGetString(ex, 'message'),\n name: tryToGetString(ex, 'name'),\n stack: stack,\n };\n}\nvar fileUrl = '((?:file|https?|blob|chrome-extension|native|eval|webpack|snippet||\\\\w+\\\\.|\\\\/).*?)';\nvar filePosition = '(?::(\\\\d+))';\nvar CHROME_LINE_RE = new RegExp(\"^\\\\s*at (.*?) ?\\\\(\".concat(fileUrl).concat(filePosition, \"?\").concat(filePosition, \"?\\\\)?\\\\s*$\"), 'i');\nvar CHROME_EVAL_RE = new RegExp(\"\\\\((\\\\S*)\".concat(filePosition).concat(filePosition, \"\\\\)\"));\nfunction parseChromeLine(line) {\n var parts = CHROME_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n var submatch = CHROME_EVAL_RE.exec(parts[2]);\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n return {\n args: isNative ? [parts[2]] : [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[3] ? +parts[3] : undefined,\n url: !isNative ? parts[2] : undefined,\n };\n}\nvar CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(\"^\\\\s*at ?\".concat(fileUrl).concat(filePosition, \"?\").concat(filePosition, \"??\\\\s*$\"), 'i');\nfunction parseChromeAnonymousLine(line) {\n var parts = CHROME_ANONYMOUS_FUNCTION_RE.exec(line);\n if (!parts) {\n return;\n }\n return {\n args: [],\n column: parts[3] ? +parts[3] : undefined,\n func: UNKNOWN_FUNCTION,\n line: parts[2] ? +parts[2] : undefined,\n url: parts[1],\n };\n}\nvar WINJS_LINE_RE = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nfunction parseWinLine(line) {\n var parts = WINJS_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n return {\n args: [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: +parts[3],\n url: parts[2],\n };\n}\nvar GECKO_LINE_RE = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar GECKO_EVAL_RE = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nfunction parseGeckoLine(line) {\n var parts = GECKO_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = GECKO_EVAL_RE.exec(parts[3]);\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = undefined; // no column when eval\n }\n return {\n args: parts[2] ? parts[2].split(',') : [],\n column: parts[5] ? +parts[5] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[4] ? +parts[4] : undefined,\n url: parts[3],\n };\n}\nfunction tryToGetString(candidate, property) {\n if (typeof candidate !== 'object' || !candidate || !(property in candidate)) {\n return undefined;\n }\n var value = candidate[property];\n return typeof value === 'string' ? value : undefined;\n}\nexport function computeStackTraceFromOnErrorMessage(messageObj, url, line, column) {\n var stack = [{ url: url, column: column, line: line }];\n var _a = tryToParseMessage(messageObj), name = _a.name, message = _a.message;\n return {\n name: name,\n message: message,\n stack: stack,\n };\n}\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nvar ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;\nfunction tryToParseMessage(messageObj) {\n var _a;\n var name;\n var message;\n if ({}.toString.call(messageObj) === '[object String]') {\n ;\n _a = ERROR_TYPES_RE.exec(messageObj), name = _a[1], message = _a[2];\n }\n return { name: name, message: message };\n}\n//# sourceMappingURL=computeStackTrace.js.map","import { callMonitored } from '../monitor';\nimport { noop } from '../utils/functionUtils';\nimport { computeStackTrace } from './computeStackTrace';\n/**\n * Creates a stacktrace without SDK internal frames.\n * Constraints:\n * - Has to be called at the utmost position of the call stack.\n * - No monitored function should encapsulate it, that is why we need to use callMonitored inside it.\n */\nexport function createHandlingStack() {\n /**\n * Skip the two internal frames:\n * - SDK API (console.error, ...)\n * - this function\n * in order to keep only the user calls\n */\n var internalFramesToSkip = 2;\n var error = new Error();\n var formattedStack;\n // IE needs to throw the error to fill in the stack trace\n if (!error.stack) {\n try {\n throw error;\n }\n catch (e) {\n noop();\n }\n }\n callMonitored(function () {\n var stackTrace = computeStackTrace(error);\n stackTrace.stack = stackTrace.stack.slice(internalFramesToSkip);\n formattedStack = toStackTraceString(stackTrace);\n });\n return formattedStack;\n}\nexport function toStackTraceString(stack) {\n var result = formatErrorMessage(stack);\n stack.stack.forEach(function (frame) {\n var func = frame.func === '?' ? '' : frame.func;\n var args = frame.args && frame.args.length > 0 ? \"(\".concat(frame.args.join(', '), \")\") : '';\n var line = frame.line ? \":\".concat(frame.line) : '';\n var column = frame.line && frame.column ? \":\".concat(frame.column) : '';\n result += \"\\n at \".concat(func).concat(args, \" @ \").concat(frame.url).concat(line).concat(column);\n });\n return result;\n}\nexport function formatErrorMessage(stack) {\n return \"\".concat(stack.name || 'Error', \": \").concat(stack.message);\n}\n//# sourceMappingURL=handlingStack.js.map","import { sanitize } from '../../tools/serialisation/sanitize';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { computeStackTrace } from '../../tools/stackTrace/computeStackTrace';\nimport { toStackTraceString } from '../../tools/stackTrace/handlingStack';\nexport var NO_ERROR_STACK_PRESENT_MESSAGE = 'No stack, consider using an instance of Error';\nexport function computeRawError(_a) {\n var stackTrace = _a.stackTrace, originalError = _a.originalError, handlingStack = _a.handlingStack, startClocks = _a.startClocks, nonErrorPrefix = _a.nonErrorPrefix, source = _a.source, handling = _a.handling;\n var isErrorInstance = originalError instanceof Error;\n var message = computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError);\n var stack = hasUsableStack(isErrorInstance, stackTrace)\n ? toStackTraceString(stackTrace)\n : NO_ERROR_STACK_PRESENT_MESSAGE;\n var causes = isErrorInstance ? flattenErrorCauses(originalError, source) : undefined;\n var type = stackTrace ? stackTrace.name : undefined;\n var fingerprint = tryToGetFingerprint(originalError);\n return {\n startClocks: startClocks,\n source: source,\n handling: handling,\n handlingStack: handlingStack,\n originalError: originalError,\n type: type,\n message: message,\n stack: stack,\n causes: causes,\n fingerprint: fingerprint,\n };\n}\nfunction computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError) {\n // Favor stackTrace message only if tracekit has really been able to extract something meaningful (message + name)\n // TODO rework tracekit integration to avoid scattering error building logic\n return (stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.message) && (stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name)\n ? stackTrace.message\n : !isErrorInstance\n ? \"\".concat(nonErrorPrefix, \" \").concat(jsonStringify(sanitize(originalError)))\n : 'Empty message';\n}\nfunction hasUsableStack(isErrorInstance, stackTrace) {\n if (stackTrace === undefined) {\n return false;\n }\n if (isErrorInstance) {\n return true;\n }\n // handle cases where tracekit return stack = [] or stack = [{url: undefined, line: undefined, column: undefined}]\n // TODO rework tracekit integration to avoid generating those unusable stack\n return stackTrace.stack.length > 0 && (stackTrace.stack.length > 1 || stackTrace.stack[0].url !== undefined);\n}\nexport function tryToGetFingerprint(originalError) {\n return originalError instanceof Error && 'dd_fingerprint' in originalError\n ? String(originalError.dd_fingerprint)\n : undefined;\n}\nexport function getFileFromStackTraceString(stack) {\n var _a;\n return (_a = /@ (.+)/.exec(stack)) === null || _a === void 0 ? void 0 : _a[1];\n}\nexport function flattenErrorCauses(error, parentSource) {\n var currentError = error;\n var causes = [];\n while ((currentError === null || currentError === void 0 ? void 0 : currentError.cause) instanceof Error && causes.length < 10) {\n var stackTrace = computeStackTrace(currentError.cause);\n causes.push({\n message: currentError.cause.message,\n source: parentSource,\n type: stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name,\n stack: stackTrace && toStackTraceString(stackTrace),\n });\n currentError = currentError.cause;\n }\n return causes.length ? causes : undefined;\n}\n//# sourceMappingURL=error.js.map","/**\n * LIMITATION:\n * For NPM setup, this feature flag singleton is shared between RUM and Logs product.\n * This means that an experimental flag set on the RUM product will be set on the Logs product.\n * So keep in mind that in certain configurations, your experimental feature flag may affect other products.\n *\n * FORMAT:\n * All feature flags should be snake_cased\n */\n// We want to use a real enum (i.e. not a const enum) here, to be able to check whether an arbitrary\n// string is an expected feature flag\nimport { objectHasValue } from './utils/objectUtils';\n// eslint-disable-next-line no-restricted-syntax\nexport var ExperimentalFeature;\n(function (ExperimentalFeature) {\n ExperimentalFeature[\"WRITABLE_RESOURCE_GRAPHQL\"] = \"writable_resource_graphql\";\n ExperimentalFeature[\"REMOTE_CONFIGURATION\"] = \"remote_configuration\";\n ExperimentalFeature[\"UPDATE_VIEW_NAME\"] = \"update_view_name\";\n ExperimentalFeature[\"LONG_ANIMATION_FRAME\"] = \"long_animation_frame\";\n ExperimentalFeature[\"VIEW_SPECIFIC_CONTEXT\"] = \"view_specific_context\";\n})(ExperimentalFeature || (ExperimentalFeature = {}));\nvar enabledExperimentalFeatures = new Set();\nexport function initFeatureFlags(enableExperimentalFeatures) {\n if (Array.isArray(enableExperimentalFeatures)) {\n addExperimentalFeatures(enableExperimentalFeatures.filter(function (flag) {\n return objectHasValue(ExperimentalFeature, flag);\n }));\n }\n}\nexport function addExperimentalFeatures(enabledFeatures) {\n enabledFeatures.forEach(function (flag) {\n enabledExperimentalFeatures.add(flag);\n });\n}\nexport function isExperimentalFeatureEnabled(featureName) {\n return enabledExperimentalFeatures.has(featureName);\n}\nexport function resetExperimentalFeatures() {\n enabledExperimentalFeatures.clear();\n}\nexport function getExperimentalFeatures() {\n return enabledExperimentalFeatures;\n}\n//# sourceMappingURL=experimentalFeatures.js.map","export var INTAKE_SITE_STAGING = 'datad0g.com';\nexport var INTAKE_SITE_FED_STAGING = 'dd0g-gov.com';\nexport var INTAKE_SITE_US1 = 'datadoghq.com';\nexport var INTAKE_SITE_EU1 = 'datadoghq.eu';\nexport var INTAKE_SITE_US1_FED = 'ddog-gov.com';\nexport var PCI_INTAKE_HOST_US1 = 'pci.browser-intake-datadoghq.com';\n//# sourceMappingURL=intakeSites.js.map","/**\n * Return true if the draw is successful\n * @param threshold between 0 and 100\n */\nexport function performDraw(threshold) {\n return threshold !== 0 && Math.random() * 100 <= threshold;\n}\nexport function round(num, decimals) {\n return +num.toFixed(decimals);\n}\nexport function isPercentage(value) {\n return isNumber(value) && value >= 0 && value <= 100;\n}\nexport function isNumber(value) {\n return typeof value === 'number';\n}\n//# sourceMappingURL=numberUtils.js.map","import { isNumber, round } from './numberUtils';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = 60 * ONE_SECOND;\nexport var ONE_HOUR = 60 * ONE_MINUTE;\nexport var ONE_DAY = 24 * ONE_HOUR;\nexport var ONE_YEAR = 365 * ONE_DAY;\nexport function relativeToClocks(relative) {\n return { relative: relative, timeStamp: getCorrectedTimeStamp(relative) };\n}\nexport function timeStampToClocks(timeStamp) {\n return { relative: getRelativeTime(timeStamp), timeStamp: timeStamp };\n}\nfunction getCorrectedTimeStamp(relativeTime) {\n var correctedOrigin = (dateNow() - performance.now());\n // apply correction only for positive drift\n if (correctedOrigin > getNavigationStart()) {\n return Math.round(addDuration(correctedOrigin, relativeTime));\n }\n return getTimeStamp(relativeTime);\n}\nexport function currentDrift() {\n return Math.round(dateNow() - addDuration(getNavigationStart(), performance.now()));\n}\nexport function toServerDuration(duration) {\n if (!isNumber(duration)) {\n return duration;\n }\n return round(duration * 1e6, 0);\n}\nexport function dateNow() {\n // Do not use `Date.now` because sometimes websites are wrongly \"polyfilling\" it. For example, we\n // had some users using a very old version of `datejs`, which patched `Date.now` to return a Date\n // instance instead of a timestamp[1]. Those users are unlikely to fix this, so let's handle this\n // case ourselves.\n // [1]: https://github.com/datejs/Datejs/blob/97f5c7c58c5bc5accdab8aa7602b6ac56462d778/src/core-debug.js#L14-L16\n return new Date().getTime();\n}\nexport function timeStampNow() {\n return dateNow();\n}\nexport function relativeNow() {\n return performance.now();\n}\nexport function clocksNow() {\n return { relative: relativeNow(), timeStamp: timeStampNow() };\n}\nexport function clocksOrigin() {\n return { relative: 0, timeStamp: getNavigationStart() };\n}\nexport function elapsed(start, end) {\n return (end - start);\n}\nexport function addDuration(a, b) {\n return a + b;\n}\n/**\n * Get the time since the navigation was started.\n *\n * Note: this does not use `performance.timeOrigin` because it doesn't seem to reflect the actual\n * time on which the navigation has started: it may be much farther in the past, at least in Firefox 71.\n * Related issue in Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1429926\n */\nexport function getRelativeTime(timestamp) {\n return (timestamp - getNavigationStart());\n}\nexport function getTimeStamp(relativeTime) {\n return Math.round(addDuration(getNavigationStart(), relativeTime));\n}\nexport function looksLikeRelativeTime(time) {\n return time < ONE_YEAR;\n}\n/**\n * Navigation start slightly change on some rare cases\n */\nvar navigationStart;\nfunction getNavigationStart() {\n if (navigationStart === undefined) {\n navigationStart = performance.timing.navigationStart;\n }\n return navigationStart;\n}\n//# sourceMappingURL=timeUtils.js.map","export function sendToExtension(type, payload) {\n var callback = window.__ddBrowserSdkExtensionCallback;\n if (callback) {\n callback({ type: type, payload: payload });\n }\n}\n//# sourceMappingURL=sendToExtension.js.map","export function getConnectivity() {\n var _a;\n var navigator = window.navigator;\n return {\n status: navigator.onLine ? 'connected' : 'not_connected',\n interfaces: navigator.connection && navigator.connection.type ? [navigator.connection.type] : undefined,\n effective_type: (_a = navigator.connection) === null || _a === void 0 ? void 0 : _a.effectiveType,\n };\n}\n//# sourceMappingURL=connectivity.js.map","import { arrayFrom } from './polyfills';\nexport function removeDuplicates(array) {\n var set = new Set();\n array.forEach(function (item) { return set.add(item); });\n return arrayFrom(set);\n}\nexport function removeItem(array, item) {\n var index = array.indexOf(item);\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrayUtils.js.map","import { removeItem } from './utils/arrayUtils';\nvar BUFFER_LIMIT = 500;\nexport function createBoundedBuffer() {\n var buffer = [];\n var add = function (callback) {\n var length = buffer.push(callback);\n if (length > BUFFER_LIMIT) {\n buffer.splice(0, 1);\n }\n };\n var remove = function (callback) {\n removeItem(buffer, callback);\n };\n var drain = function (arg) {\n buffer.forEach(function (callback) { return callback(arg); });\n buffer.length = 0;\n };\n return {\n add: add,\n remove: remove,\n drain: drain,\n };\n}\n//# sourceMappingURL=boundedBuffer.js.map","export var TelemetryType = {\n log: 'log',\n configuration: 'configuration',\n usage: 'usage',\n};\n//# sourceMappingURL=rawTelemetryEvent.types.js.map","import { ConsoleApiName } from '../../tools/display';\nimport { NO_ERROR_STACK_PRESENT_MESSAGE } from '../error/error';\nimport { toStackTraceString } from '../../tools/stackTrace/handlingStack';\nimport { getExperimentalFeatures } from '../../tools/experimentalFeatures';\nimport { INTAKE_SITE_STAGING, INTAKE_SITE_US1_FED } from '../configuration';\nimport { Observable } from '../../tools/observable';\nimport { timeStampNow } from '../../tools/utils/timeUtils';\nimport { displayIfDebugEnabled, startMonitorErrorCollection } from '../../tools/monitor';\nimport { sendToExtension } from '../../tools/sendToExtension';\nimport { startsWith, arrayFrom, includes, assign } from '../../tools/utils/polyfills';\nimport { performDraw } from '../../tools/utils/numberUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { combine } from '../../tools/mergeInto';\nimport { computeStackTrace } from '../../tools/stackTrace/computeStackTrace';\nimport { getConnectivity } from '../connectivity';\nimport { createBoundedBuffer } from '../../tools/boundedBuffer';\nimport { TelemetryType } from './rawTelemetryEvent.types';\nvar ALLOWED_FRAME_URLS = [\n 'https://www.datadoghq-browser-agent.com',\n 'https://www.datad0g-browser-agent.com',\n 'https://d3uc069fcn7uxw.cloudfront.net',\n 'https://d20xtzwzcl0ceb.cloudfront.net',\n 'http://localhost',\n '',\n];\nvar TELEMETRY_EXCLUDED_SITES = [INTAKE_SITE_US1_FED];\n// eslint-disable-next-line local-rules/disallow-side-effects\nvar preStartTelemetryBuffer = createBoundedBuffer();\nvar onRawTelemetryEventCollected = function (event) {\n preStartTelemetryBuffer.add(function () { return onRawTelemetryEventCollected(event); });\n};\nexport function startTelemetry(telemetryService, configuration) {\n var _a;\n var contextProvider;\n var observable = new Observable();\n var alreadySentEvents = new Set();\n var telemetryEnabled = !includes(TELEMETRY_EXCLUDED_SITES, configuration.site) && performDraw(configuration.telemetrySampleRate);\n var telemetryEnabledPerType = (_a = {},\n _a[TelemetryType.log] = telemetryEnabled,\n _a[TelemetryType.configuration] = telemetryEnabled && performDraw(configuration.telemetryConfigurationSampleRate),\n _a[TelemetryType.usage] = telemetryEnabled && performDraw(configuration.telemetryUsageSampleRate),\n _a);\n var runtimeEnvInfo = getRuntimeEnvInfo();\n onRawTelemetryEventCollected = function (rawEvent) {\n var stringifiedEvent = jsonStringify(rawEvent);\n if (telemetryEnabledPerType[rawEvent.type] &&\n alreadySentEvents.size < configuration.maxTelemetryEventsPerPage &&\n !alreadySentEvents.has(stringifiedEvent)) {\n var event_1 = toTelemetryEvent(telemetryService, rawEvent, runtimeEnvInfo);\n observable.notify(event_1);\n sendToExtension('telemetry', event_1);\n alreadySentEvents.add(stringifiedEvent);\n }\n };\n startMonitorErrorCollection(addTelemetryError);\n function toTelemetryEvent(telemetryService, event, runtimeEnvInfo) {\n return combine({\n type: 'telemetry',\n date: timeStampNow(),\n service: telemetryService,\n version: \"5.27.0\",\n source: 'browser',\n _dd: {\n format_version: 2,\n },\n telemetry: combine(event, {\n runtime_env: runtimeEnvInfo,\n connectivity: getConnectivity(),\n }),\n experimental_features: arrayFrom(getExperimentalFeatures()),\n }, contextProvider !== undefined ? contextProvider() : {});\n }\n return {\n setContextProvider: function (provider) {\n contextProvider = provider;\n },\n observable: observable,\n enabled: telemetryEnabled,\n };\n}\nfunction getRuntimeEnvInfo() {\n return {\n is_local_file: window.location.protocol === 'file:',\n is_worker: 'WorkerGlobalScope' in self,\n };\n}\nexport function startFakeTelemetry() {\n var events = [];\n onRawTelemetryEventCollected = function (event) {\n events.push(event);\n };\n return events;\n}\n// need to be called after telemetry context is provided and observers are registered\nexport function drainPreStartTelemetry() {\n preStartTelemetryBuffer.drain();\n}\nexport function resetTelemetry() {\n preStartTelemetryBuffer = createBoundedBuffer();\n onRawTelemetryEventCollected = function (event) {\n preStartTelemetryBuffer.add(function () { return onRawTelemetryEventCollected(event); });\n };\n}\n/**\n * Avoid mixing telemetry events from different data centers\n * but keep replicating staging events for reliability\n */\nexport function isTelemetryReplicationAllowed(configuration) {\n return configuration.site === INTAKE_SITE_STAGING;\n}\nexport function addTelemetryDebug(message, context) {\n displayIfDebugEnabled(ConsoleApiName.debug, message, context);\n onRawTelemetryEventCollected(assign({\n type: TelemetryType.log,\n message: message,\n status: \"debug\" /* StatusType.debug */,\n }, context));\n}\nexport function addTelemetryError(e, context) {\n onRawTelemetryEventCollected(assign({\n type: TelemetryType.log,\n status: \"error\" /* StatusType.error */,\n }, formatError(e), context));\n}\nexport function addTelemetryConfiguration(configuration) {\n onRawTelemetryEventCollected({\n type: TelemetryType.configuration,\n configuration: configuration,\n });\n}\nexport function addTelemetryUsage(usage) {\n onRawTelemetryEventCollected({\n type: TelemetryType.usage,\n usage: usage,\n });\n}\nexport function formatError(e) {\n if (e instanceof Error) {\n var stackTrace = computeStackTrace(e);\n return {\n error: {\n kind: stackTrace.name,\n stack: toStackTraceString(scrubCustomerFrames(stackTrace)),\n },\n message: stackTrace.message,\n };\n }\n return {\n error: {\n stack: NO_ERROR_STACK_PRESENT_MESSAGE,\n },\n message: \"\".concat(\"Uncaught\" /* NonErrorPrefix.UNCAUGHT */, \" \").concat(jsonStringify(e)),\n };\n}\nexport function scrubCustomerFrames(stackTrace) {\n stackTrace.stack = stackTrace.stack.filter(function (frame) { return !frame.url || ALLOWED_FRAME_URLS.some(function (allowedFrameUrl) { return startsWith(frame.url, allowedFrameUrl); }); });\n return stackTrace;\n}\n//# sourceMappingURL=telemetry.js.map","import { display } from '../../tools/display';\nimport { getType } from '../../tools/utils/typeUtils';\nimport { assign } from '../../tools/utils/polyfills';\n/**\n * Clone input data and ensure known user properties (id, name, email)\n * are strings, as defined here:\n * https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#user-related-attributes\n */\nexport function sanitizeUser(newUser) {\n // We shallow clone only to prevent mutation of user data.\n var user = assign({}, newUser);\n var keys = ['id', 'name', 'email'];\n keys.forEach(function (key) {\n if (key in user) {\n user[key] = String(user[key]);\n }\n });\n return user;\n}\n/**\n * Simple check to ensure user is valid\n */\nexport function checkUser(newUser) {\n var isValid = getType(newUser) === 'object';\n if (!isValid) {\n display.error('Unsupported user:', newUser);\n }\n return isValid;\n}\n//# sourceMappingURL=user.js.map","import { display } from '../tools/display';\nexport function displayAlreadyInitializedError(sdkName, initConfiguration) {\n if (!initConfiguration.silentMultipleInit) {\n display.error(\"\".concat(sdkName, \" is already initialized.\"));\n }\n}\n//# sourceMappingURL=displayAlreadyInitializedError.js.map","/**\n * UUID v4\n * from https://gist.github.com/jed/982883\n */\nexport function generateUUID(placeholder) {\n return placeholder\n ? // eslint-disable-next-line no-bitwise\n (parseInt(placeholder, 10) ^ ((Math.random() * 16) >> (parseInt(placeholder, 10) / 4))).toString(16)\n : \"\".concat(1e7, \"-\").concat(1e3, \"-\").concat(4e3, \"-\").concat(8e3, \"-\").concat(1e11).replace(/[018]/g, generateUUID);\n}\nvar COMMA_SEPARATED_KEY_VALUE = /([\\w-]+)\\s*=\\s*([^;]+)/g;\nexport function findCommaSeparatedValue(rawString, name) {\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);\n if (match) {\n if (match[1] === name) {\n return match[2];\n }\n }\n else {\n break;\n }\n }\n}\nexport function findCommaSeparatedValues(rawString) {\n var result = new Map();\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);\n if (match) {\n result.set(match[1], match[2]);\n }\n else {\n break;\n }\n }\n return result;\n}\nexport function safeTruncate(candidate, length, suffix) {\n if (suffix === void 0) { suffix = ''; }\n var lastChar = candidate.charCodeAt(length - 1);\n var isLastCharSurrogatePair = lastChar >= 0xd800 && lastChar <= 0xdbff;\n var correctedLength = isLastCharSurrogatePair ? length + 1 : length;\n if (candidate.length <= correctedLength) {\n return candidate;\n }\n return \"\".concat(candidate.slice(0, correctedLength)).concat(suffix);\n}\n//# sourceMappingURL=stringUtils.js.map","import { clocksNow, combine, elapsed, generateUUID, toServerDuration } from '@datadog/browser-core';\nexport function createCustomVitalsState() {\n var vitalsByName = new Map();\n var vitalsByReference = new WeakMap();\n return { vitalsByName: vitalsByName, vitalsByReference: vitalsByReference };\n}\nexport function startVitalCollection(lifeCycle, pageStateHistory, customVitalsState) {\n function isValid(vital) {\n return !pageStateHistory.wasInPageStateDuringPeriod(\"frozen\" /* PageState.FROZEN */, vital.startClocks.relative, vital.duration);\n }\n function addDurationVital(vital) {\n if (isValid(vital)) {\n lifeCycle.notify(12 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processVital(vital, true));\n }\n }\n return {\n addDurationVital: addDurationVital,\n startDurationVital: function (name, options) {\n if (options === void 0) { options = {}; }\n return startDurationVital(customVitalsState, name, options);\n },\n stopDurationVital: function (nameOrRef, options) {\n if (options === void 0) { options = {}; }\n stopDurationVital(addDurationVital, customVitalsState, nameOrRef, options);\n },\n };\n}\nexport function startDurationVital(_a, name, options) {\n var vitalsByName = _a.vitalsByName, vitalsByReference = _a.vitalsByReference;\n if (options === void 0) { options = {}; }\n var vital = {\n name: name,\n startClocks: clocksNow(),\n context: options.context,\n description: options.description,\n };\n // To avoid leaking implementation details of the vital, we return a reference to it.\n var reference = { __dd_vital_reference: true };\n vitalsByName.set(name, vital);\n // To avoid memory leaks caused by the creation of numerous references (e.g., from improper useEffect implementations), we use a WeakMap.\n vitalsByReference.set(reference, vital);\n return reference;\n}\nexport function stopDurationVital(stopCallback, _a, nameOrRef, options) {\n var vitalsByName = _a.vitalsByName, vitalsByReference = _a.vitalsByReference;\n if (options === void 0) { options = {}; }\n var vitalStart = typeof nameOrRef === 'string' ? vitalsByName.get(nameOrRef) : vitalsByReference.get(nameOrRef);\n if (!vitalStart) {\n return;\n }\n stopCallback(buildDurationVital(vitalStart, vitalStart.startClocks, options, clocksNow()));\n if (typeof nameOrRef === 'string') {\n vitalsByName.delete(nameOrRef);\n }\n else {\n vitalsByReference.delete(nameOrRef);\n }\n}\nfunction buildDurationVital(vitalStart, startClocks, stopOptions, stopClocks) {\n var _a;\n return {\n name: vitalStart.name,\n type: \"duration\" /* VitalType.DURATION */,\n startClocks: startClocks,\n duration: elapsed(startClocks.timeStamp, stopClocks.timeStamp),\n context: combine(vitalStart.context, stopOptions.context),\n description: (_a = stopOptions.description) !== null && _a !== void 0 ? _a : vitalStart.description,\n };\n}\nfunction processVital(vital, valueComputedBySdk) {\n var rawRumEvent = {\n date: vital.startClocks.timeStamp,\n vital: {\n id: generateUUID(),\n type: vital.type,\n name: vital.name,\n duration: toServerDuration(vital.duration),\n description: vital.description,\n },\n type: \"vital\" /* RumEventType.VITAL */,\n };\n if (valueComputedBySdk) {\n rawRumEvent._dd = {\n vital: {\n computed_value: true,\n },\n };\n }\n return {\n rawRumEvent: rawRumEvent,\n startTime: vital.startClocks.relative,\n customerContext: vital.context,\n domainContext: {},\n };\n}\n//# sourceMappingURL=vitalCollection.js.map","import { endsWith, includes } from '../tools/utils/polyfills';\nimport { getGlobalObject } from '../tools/getGlobalObject';\nexport function getEventBridge() {\n var eventBridgeGlobal = getEventBridgeGlobal();\n if (!eventBridgeGlobal) {\n return;\n }\n return {\n getCapabilities: function () {\n var _a;\n return JSON.parse(((_a = eventBridgeGlobal.getCapabilities) === null || _a === void 0 ? void 0 : _a.call(eventBridgeGlobal)) || '[]');\n },\n getPrivacyLevel: function () {\n var _a;\n return (_a = eventBridgeGlobal.getPrivacyLevel) === null || _a === void 0 ? void 0 : _a.call(eventBridgeGlobal);\n },\n getAllowedWebViewHosts: function () {\n return JSON.parse(eventBridgeGlobal.getAllowedWebViewHosts());\n },\n send: function (eventType, event, viewId) {\n var view = viewId ? { id: viewId } : undefined;\n eventBridgeGlobal.send(JSON.stringify({ eventType: eventType, event: event, view: view }));\n },\n };\n}\nexport function bridgeSupports(capability) {\n var bridge = getEventBridge();\n return !!bridge && includes(bridge.getCapabilities(), capability);\n}\nexport function canUseEventBridge(currentHost) {\n var _a;\n if (currentHost === void 0) { currentHost = (_a = getGlobalObject().location) === null || _a === void 0 ? void 0 : _a.hostname; }\n var bridge = getEventBridge();\n return (!!bridge &&\n bridge\n .getAllowedWebViewHosts()\n .some(function (allowedHost) { return currentHost === allowedHost || endsWith(currentHost, \".\".concat(allowedHost)); }));\n}\nfunction getEventBridgeGlobal() {\n return getGlobalObject().DatadogEventBridge;\n}\n//# sourceMappingURL=eventBridge.js.map","import { setTimeout } from './timer';\nimport { callMonitored } from './monitor';\nimport { noop } from './utils/functionUtils';\nimport { arrayFrom, startsWith } from './utils/polyfills';\nimport { createHandlingStack } from './stackTrace/handlingStack';\n/**\n * Instruments a method on a object, calling the given callback before the original method is\n * invoked. The callback receives an object with information about the method call.\n *\n * This function makes sure that we are \"good citizens\" regarding third party instrumentations: when\n * removing the instrumentation, the original method is usually restored, but if a third party\n * instrumentation was set after ours, we keep it in place and just replace our instrumentation with\n * a noop.\n *\n * Note: it is generally better to instrument methods that are \"owned\" by the object instead of ones\n * that are inherited from the prototype chain. Example:\n * * do: `instrumentMethod(Array.prototype, 'push', ...)`\n * * don't: `instrumentMethod([], 'push', ...)`\n *\n * This method is also used to set event handler properties (ex: window.onerror = ...), as it has\n * the same requirements as instrumenting a method:\n * * if the event handler is already set by a third party, we need to call it and not just blindly\n * override it.\n * * if the event handler is set by a third party after us, we need to keep it in place when\n * removing ours.\n *\n * @example\n *\n * instrumentMethod(window, 'fetch', ({ target, parameters, onPostCall }) => {\n * console.log('Before calling fetch on', target, 'with parameters', parameters)\n *\n * onPostCall((result) => {\n * console.log('After fetch calling on', target, 'with parameters', parameters, 'and result', result)\n * })\n * })\n */\nexport function instrumentMethod(targetPrototype, method, onPreCall, _a) {\n var _b = _a === void 0 ? {} : _a, computeHandlingStack = _b.computeHandlingStack;\n var original = targetPrototype[method];\n if (typeof original !== 'function') {\n if (method in targetPrototype && startsWith(method, 'on')) {\n original = noop;\n }\n else {\n return { stop: noop };\n }\n }\n var stopped = false;\n var instrumentation = function () {\n if (stopped) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n return original.apply(this, arguments);\n }\n var parameters = arrayFrom(arguments);\n var postCallCallback;\n callMonitored(onPreCall, null, [\n {\n target: this,\n parameters: parameters,\n onPostCall: function (callback) {\n postCallCallback = callback;\n },\n handlingStack: computeHandlingStack ? createHandlingStack() : undefined,\n },\n ]);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n var result = original.apply(this, parameters);\n if (postCallCallback) {\n callMonitored(postCallCallback, null, [result]);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return result;\n };\n targetPrototype[method] = instrumentation;\n return {\n stop: function () {\n stopped = true;\n // If the instrumentation has been removed by a third party, keep the last one\n if (targetPrototype[method] === instrumentation) {\n targetPrototype[method] = original;\n }\n },\n };\n}\nexport function instrumentSetter(targetPrototype, property, after) {\n var originalDescriptor = Object.getOwnPropertyDescriptor(targetPrototype, property);\n if (!originalDescriptor || !originalDescriptor.set || !originalDescriptor.configurable) {\n return { stop: noop };\n }\n var stoppedInstrumentation = noop;\n var instrumentation = function (target, value) {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(function () {\n if (instrumentation !== stoppedInstrumentation) {\n after(target, value);\n }\n }, 0);\n };\n var instrumentationWrapper = function (value) {\n originalDescriptor.set.call(this, value);\n instrumentation(this, value);\n };\n Object.defineProperty(targetPrototype, property, {\n set: instrumentationWrapper,\n });\n return {\n stop: function () {\n var _a;\n if (((_a = Object.getOwnPropertyDescriptor(targetPrototype, property)) === null || _a === void 0 ? void 0 : _a.set) === instrumentationWrapper) {\n Object.defineProperty(targetPrototype, property, originalDescriptor);\n }\n instrumentation = stoppedInstrumentation;\n },\n };\n}\n//# sourceMappingURL=instrumentMethod.js.map","import { jsonStringify } from '../serialisation/jsonStringify';\nexport function normalizeUrl(url) {\n return buildUrl(url, location.href).href;\n}\nexport function isValidUrl(url) {\n try {\n return !!buildUrl(url);\n }\n catch (_a) {\n return false;\n }\n}\nexport function getPathName(url) {\n var pathname = buildUrl(url).pathname;\n return pathname[0] === '/' ? pathname : \"/\".concat(pathname);\n}\nexport function buildUrl(url, base) {\n var supportedURL = getSupportedUrl();\n if (supportedURL) {\n try {\n return base !== undefined ? new supportedURL(url, base) : new supportedURL(url);\n }\n catch (error) {\n throw new Error(\"Failed to construct URL: \".concat(String(error), \" \").concat(jsonStringify({ url: url, base: base })));\n }\n }\n if (base === undefined && !/:/.test(url)) {\n throw new Error(\"Invalid URL: '\".concat(url, \"'\"));\n }\n var doc = document;\n var anchorElement = doc.createElement('a');\n if (base !== undefined) {\n doc = document.implementation.createHTMLDocument('');\n var baseElement = doc.createElement('base');\n baseElement.href = base;\n doc.head.appendChild(baseElement);\n doc.body.appendChild(anchorElement);\n }\n anchorElement.href = url;\n return anchorElement;\n}\nvar originalURL = URL;\nvar isURLSupported;\nfunction getSupportedUrl() {\n if (isURLSupported === undefined) {\n try {\n var url = new originalURL('http://test/path');\n isURLSupported = url.href === 'http://test/path';\n }\n catch (_a) {\n isURLSupported = false;\n }\n }\n return isURLSupported ? originalURL : undefined;\n}\n//# sourceMappingURL=urlPolyfill.js.map","import { instrumentMethod } from '../tools/instrumentMethod';\nimport { monitor } from '../tools/monitor';\nimport { Observable } from '../tools/observable';\nimport { assign } from '../tools/utils/polyfills';\nimport { clocksNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nvar fetchObservable;\nexport function initFetchObservable() {\n if (!fetchObservable) {\n fetchObservable = createFetchObservable();\n }\n return fetchObservable;\n}\nexport function resetFetchObservable() {\n fetchObservable = undefined;\n}\nfunction createFetchObservable() {\n return new Observable(function (observable) {\n if (!window.fetch) {\n return;\n }\n var stop = instrumentMethod(window, 'fetch', function (call) { return beforeSend(call, observable); }, {\n computeHandlingStack: true,\n }).stop;\n return stop;\n });\n}\nfunction beforeSend(_a, observable) {\n var parameters = _a.parameters, onPostCall = _a.onPostCall, handlingStack = _a.handlingStack;\n var input = parameters[0], init = parameters[1];\n var methodFromParams = init && init.method;\n if (methodFromParams === undefined && input instanceof Request) {\n methodFromParams = input.method;\n }\n var method = methodFromParams !== undefined ? String(methodFromParams).toUpperCase() : 'GET';\n var url = input instanceof Request ? input.url : normalizeUrl(String(input));\n var startClocks = clocksNow();\n var context = {\n state: 'start',\n init: init,\n input: input,\n method: method,\n startClocks: startClocks,\n url: url,\n handlingStack: handlingStack,\n };\n observable.notify(context);\n // Those properties can be changed by observable subscribers\n parameters[0] = context.input;\n parameters[1] = context.init;\n onPostCall(function (responsePromise) { return afterSend(observable, responsePromise, context); });\n}\nfunction afterSend(observable, responsePromise, startContext) {\n var context = startContext;\n function reportFetch(partialContext) {\n context.state = 'resolve';\n assign(context, partialContext);\n observable.notify(context);\n }\n responsePromise.then(monitor(function (response) {\n reportFetch({\n response: response,\n responseType: response.type,\n status: response.status,\n isAborted: false,\n });\n }), monitor(function (error) {\n var _a, _b;\n reportFetch({\n status: 0,\n isAborted: ((_b = (_a = context.init) === null || _a === void 0 ? void 0 : _a.signal) === null || _b === void 0 ? void 0 : _b.aborted) || (error instanceof DOMException && error.code === DOMException.ABORT_ERR),\n error: error,\n });\n }));\n}\n//# sourceMappingURL=fetchObservable.js.map","import { display } from '../tools/display';\nimport { ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { findCommaSeparatedValue, findCommaSeparatedValues, generateUUID } from '../tools/utils/stringUtils';\nexport function setCookie(name, value, expireDelay, options) {\n var date = new Date();\n date.setTime(date.getTime() + expireDelay);\n var expires = \"expires=\".concat(date.toUTCString());\n var sameSite = options && options.crossSite ? 'none' : 'strict';\n var domain = options && options.domain ? \";domain=\".concat(options.domain) : '';\n var secure = options && options.secure ? ';secure' : '';\n var partitioned = options && options.partitioned ? ';partitioned' : '';\n document.cookie = \"\".concat(name, \"=\").concat(value, \";\").concat(expires, \";path=/;samesite=\").concat(sameSite).concat(domain).concat(secure).concat(partitioned);\n}\nexport function getCookie(name) {\n return findCommaSeparatedValue(document.cookie, name);\n}\nvar initCookieParsed;\n/**\n * Returns a cached value of the cookie. Use this during SDK initialization (and whenever possible)\n * to avoid accessing document.cookie multiple times.\n */\nexport function getInitCookie(name) {\n if (!initCookieParsed) {\n initCookieParsed = findCommaSeparatedValues(document.cookie);\n }\n return initCookieParsed.get(name);\n}\nexport function resetInitCookies() {\n initCookieParsed = undefined;\n}\nexport function deleteCookie(name, options) {\n setCookie(name, '', 0, options);\n}\nexport function areCookiesAuthorized(options) {\n if (document.cookie === undefined || document.cookie === null) {\n return false;\n }\n try {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = \"dd_cookie_test_\".concat(generateUUID());\n var testCookieValue = 'test';\n setCookie(testCookieName, testCookieValue, ONE_MINUTE, options);\n var isCookieCorrectlySet = getCookie(testCookieName) === testCookieValue;\n deleteCookie(testCookieName, options);\n return isCookieCorrectlySet;\n }\n catch (error) {\n display.error(error);\n return false;\n }\n}\n/**\n * No API to retrieve it, number of levels for subdomain and suffix are unknown\n * strategy: find the minimal domain on which cookies are allowed to be set\n * https://web.dev/same-site-same-origin/#site\n */\nvar getCurrentSiteCache;\nexport function getCurrentSite() {\n if (getCurrentSiteCache === undefined) {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = \"dd_site_test_\".concat(generateUUID());\n var testCookieValue = 'test';\n var domainLevels = window.location.hostname.split('.');\n var candidateDomain = domainLevels.pop();\n while (domainLevels.length && !getCookie(testCookieName)) {\n candidateDomain = \"\".concat(domainLevels.pop(), \".\").concat(candidateDomain);\n setCookie(testCookieName, testCookieValue, ONE_SECOND, { domain: candidateDomain });\n }\n deleteCookie(testCookieName, { domain: candidateDomain });\n getCurrentSiteCache = candidateDomain;\n }\n return getCurrentSiteCache;\n}\n//# sourceMappingURL=cookie.js.map","import { getInitCookie } from '../../browser/cookie';\nexport var SYNTHETICS_TEST_ID_COOKIE_NAME = 'datadog-synthetics-public-id';\nexport var SYNTHETICS_RESULT_ID_COOKIE_NAME = 'datadog-synthetics-result-id';\nexport var SYNTHETICS_INJECTS_RUM_COOKIE_NAME = 'datadog-synthetics-injects-rum';\nexport function willSyntheticsInjectRum() {\n return Boolean(window._DATADOG_SYNTHETICS_INJECTS_RUM || getInitCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME));\n}\nexport function getSyntheticsTestId() {\n var value = window._DATADOG_SYNTHETICS_PUBLIC_ID || getInitCookie(SYNTHETICS_TEST_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\nexport function getSyntheticsResultId() {\n var value = window._DATADOG_SYNTHETICS_RESULT_ID || getInitCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\n//# sourceMappingURL=syntheticsWorkerValues.js.map","export function isIE() {\n return detectBrowserCached() === 0 /* Browser.IE */;\n}\nexport function isChromium() {\n return detectBrowserCached() === 1 /* Browser.CHROMIUM */;\n}\nexport function isSafari() {\n return detectBrowserCached() === 2 /* Browser.SAFARI */;\n}\nvar browserCache;\nfunction detectBrowserCached() {\n return browserCache !== null && browserCache !== void 0 ? browserCache : (browserCache = detectBrowser());\n}\n// Exported only for tests\nexport function detectBrowser(browserWindow) {\n var _a;\n if (browserWindow === void 0) { browserWindow = window; }\n var userAgent = browserWindow.navigator.userAgent;\n if (browserWindow.chrome || /HeadlessChrome/.test(userAgent)) {\n return 1 /* Browser.CHROMIUM */;\n }\n if (\n // navigator.vendor is deprecated, but it is the most resilient way we found to detect\n // \"Apple maintained browsers\" (AKA Safari). If one day it gets removed, we still have the\n // useragent test as a semi-working fallback.\n ((_a = browserWindow.navigator.vendor) === null || _a === void 0 ? void 0 : _a.indexOf('Apple')) === 0 ||\n (/safari/i.test(userAgent) && !/chrome|android/i.test(userAgent))) {\n return 2 /* Browser.SAFARI */;\n }\n if (browserWindow.document.documentMode) {\n return 0 /* Browser.IE */;\n }\n return 3 /* Browser.OTHER */;\n}\n//# sourceMappingURL=browserDetection.js.map","export var SESSION_STORE_KEY = '_dd_s';\n//# sourceMappingURL=sessionStoreStrategy.js.map","import { ONE_HOUR, ONE_MINUTE } from '../../tools/utils/timeUtils';\nexport var SESSION_TIME_OUT_DELAY = 4 * ONE_HOUR;\nexport var SESSION_EXPIRATION_DELAY = 15 * ONE_MINUTE;\n//# sourceMappingURL=sessionConstants.js.map","import { isEmptyObject } from '../../tools/utils/objectUtils';\nimport { objectEntries } from '../../tools/utils/polyfills';\nimport { dateNow } from '../../tools/utils/timeUtils';\nimport { SESSION_EXPIRATION_DELAY, SESSION_TIME_OUT_DELAY } from './sessionConstants';\nvar SESSION_ENTRY_REGEXP = /^([a-zA-Z]+)=([a-z0-9-]+)$/;\nvar SESSION_ENTRY_SEPARATOR = '&';\nexport var EXPIRED = '1';\nexport function getExpiredSessionState() {\n return {\n isExpired: EXPIRED,\n };\n}\nexport function isSessionInNotStartedState(session) {\n return isEmptyObject(session);\n}\nexport function isSessionStarted(session) {\n return !isSessionInNotStartedState(session);\n}\nexport function isSessionInExpiredState(session) {\n return session.isExpired !== undefined || !isActiveSession(session);\n}\n// An active session is a session in either `Tracked` or `NotTracked` state\nfunction isActiveSession(sessionState) {\n // created and expire can be undefined for versions which was not storing them\n // these checks could be removed when older versions will not be available/live anymore\n return ((sessionState.created === undefined || dateNow() - Number(sessionState.created) < SESSION_TIME_OUT_DELAY) &&\n (sessionState.expire === undefined || dateNow() < Number(sessionState.expire)));\n}\nexport function expandSessionState(session) {\n session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY);\n}\nexport function toSessionString(session) {\n return objectEntries(session)\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n return \"\".concat(key, \"=\").concat(value);\n })\n .join(SESSION_ENTRY_SEPARATOR);\n}\nexport function toSessionState(sessionString) {\n var session = {};\n if (isValidSessionString(sessionString)) {\n sessionString.split(SESSION_ENTRY_SEPARATOR).forEach(function (entry) {\n var matches = SESSION_ENTRY_REGEXP.exec(entry);\n if (matches !== null) {\n var key = matches[1], value = matches[2];\n session[key] = value;\n }\n });\n }\n return session;\n}\nfunction isValidSessionString(sessionString) {\n return (!!sessionString &&\n (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 || SESSION_ENTRY_REGEXP.test(sessionString)));\n}\n//# sourceMappingURL=sessionState.js.map","import { getInitCookie } from '../../browser/cookie';\nimport { SESSION_STORE_KEY } from './storeStrategies/sessionStoreStrategy';\nimport { expandSessionState, isSessionStarted } from './sessionState';\nexport var OLD_SESSION_COOKIE_NAME = '_dd';\nexport var OLD_RUM_COOKIE_NAME = '_dd_r';\nexport var OLD_LOGS_COOKIE_NAME = '_dd_l';\n// duplicate values to avoid dependency issues\nexport var RUM_SESSION_KEY = 'rum';\nexport var LOGS_SESSION_KEY = 'logs';\n/**\n * This migration should remain in the codebase as long as older versions are available/live\n * to allow older sdk versions to be upgraded to newer versions without compatibility issues.\n */\nexport function tryOldCookiesMigration(cookieStoreStrategy) {\n var sessionString = getInitCookie(SESSION_STORE_KEY);\n if (!sessionString) {\n var oldSessionId = getInitCookie(OLD_SESSION_COOKIE_NAME);\n var oldRumType = getInitCookie(OLD_RUM_COOKIE_NAME);\n var oldLogsType = getInitCookie(OLD_LOGS_COOKIE_NAME);\n var session = {};\n if (oldSessionId) {\n session.id = oldSessionId;\n }\n if (oldLogsType && /^[01]$/.test(oldLogsType)) {\n session[LOGS_SESSION_KEY] = oldLogsType;\n }\n if (oldRumType && /^[012]$/.test(oldRumType)) {\n session[RUM_SESSION_KEY] = oldRumType;\n }\n if (isSessionStarted(session)) {\n expandSessionState(session);\n cookieStoreStrategy.persistSession(session);\n }\n }\n}\n//# sourceMappingURL=oldCookiesMigration.js.map","import { isChromium } from '../../../tools/utils/browserDetection';\nimport { getCurrentSite, areCookiesAuthorized, getCookie, setCookie } from '../../../browser/cookie';\nimport { tryOldCookiesMigration } from '../oldCookiesMigration';\nimport { SESSION_EXPIRATION_DELAY, SESSION_TIME_OUT_DELAY } from '../sessionConstants';\nimport { toSessionString, toSessionState, getExpiredSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nexport function selectCookieStrategy(initConfiguration) {\n var cookieOptions = buildCookieOptions(initConfiguration);\n return areCookiesAuthorized(cookieOptions) ? { type: 'Cookie', cookieOptions: cookieOptions } : undefined;\n}\nexport function initCookieStrategy(cookieOptions) {\n var cookieStore = {\n /**\n * Lock strategy allows mitigating issues due to concurrent access to cookie.\n * This issue concerns only chromium browsers and enabling this on firefox increases cookie write failures.\n */\n isLockEnabled: isChromium(),\n persistSession: persistSessionCookie(cookieOptions),\n retrieveSession: retrieveSessionCookie,\n expireSession: function () { return expireSessionCookie(cookieOptions); },\n };\n tryOldCookiesMigration(cookieStore);\n return cookieStore;\n}\nfunction persistSessionCookie(options) {\n return function (session) {\n setCookie(SESSION_STORE_KEY, toSessionString(session), SESSION_EXPIRATION_DELAY, options);\n };\n}\nfunction expireSessionCookie(options) {\n setCookie(SESSION_STORE_KEY, toSessionString(getExpiredSessionState()), SESSION_TIME_OUT_DELAY, options);\n}\nfunction retrieveSessionCookie() {\n var sessionString = getCookie(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nexport function buildCookieOptions(initConfiguration) {\n var cookieOptions = {};\n cookieOptions.secure =\n !!initConfiguration.useSecureSessionCookie ||\n !!initConfiguration.usePartitionedCrossSiteSessionCookie ||\n !!initConfiguration.useCrossSiteSessionCookie;\n cookieOptions.crossSite =\n !!initConfiguration.usePartitionedCrossSiteSessionCookie || !!initConfiguration.useCrossSiteSessionCookie;\n cookieOptions.partitioned = !!initConfiguration.usePartitionedCrossSiteSessionCookie;\n if (initConfiguration.trackSessionAcrossSubdomains) {\n cookieOptions.domain = getCurrentSite();\n }\n return cookieOptions;\n}\n//# sourceMappingURL=sessionInCookie.js.map","import { generateUUID } from '../../../tools/utils/stringUtils';\nimport { toSessionString, toSessionState, getExpiredSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nvar LOCAL_STORAGE_TEST_KEY = '_dd_test_';\nexport function selectLocalStorageStrategy() {\n try {\n var id = generateUUID();\n var testKey = \"\".concat(LOCAL_STORAGE_TEST_KEY).concat(id);\n localStorage.setItem(testKey, id);\n var retrievedId = localStorage.getItem(testKey);\n localStorage.removeItem(testKey);\n return id === retrievedId ? { type: 'LocalStorage' } : undefined;\n }\n catch (e) {\n return undefined;\n }\n}\nexport function initLocalStorageStrategy() {\n return {\n isLockEnabled: false,\n persistSession: persistInLocalStorage,\n retrieveSession: retrieveSessionFromLocalStorage,\n expireSession: expireSessionFromLocalStorage,\n };\n}\nfunction persistInLocalStorage(sessionState) {\n localStorage.setItem(SESSION_STORE_KEY, toSessionString(sessionState));\n}\nfunction retrieveSessionFromLocalStorage() {\n var sessionString = localStorage.getItem(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction expireSessionFromLocalStorage() {\n persistInLocalStorage(getExpiredSessionState());\n}\n//# sourceMappingURL=sessionInLocalStorage.js.map","import { setTimeout } from '../../tools/timer';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { assign } from '../../tools/utils/polyfills';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport var LOCK_RETRY_DELAY = 10;\nexport var LOCK_MAX_TRIES = 100;\nvar bufferedOperations = [];\nvar ongoingOperations;\nexport function processSessionStoreOperations(operations, sessionStoreStrategy, numberOfRetries) {\n var _a;\n if (numberOfRetries === void 0) { numberOfRetries = 0; }\n var isLockEnabled = sessionStoreStrategy.isLockEnabled, persistSession = sessionStoreStrategy.persistSession, expireSession = sessionStoreStrategy.expireSession;\n var persistWithLock = function (session) { return persistSession(assign({}, session, { lock: currentLock })); };\n var retrieveStore = function () {\n var session = sessionStoreStrategy.retrieveSession();\n var lock = session.lock;\n if (session.lock) {\n delete session.lock;\n }\n return {\n session: session,\n lock: lock,\n };\n };\n if (!ongoingOperations) {\n ongoingOperations = operations;\n }\n if (operations !== ongoingOperations) {\n bufferedOperations.push(operations);\n return;\n }\n if (isLockEnabled && numberOfRetries >= LOCK_MAX_TRIES) {\n next(sessionStoreStrategy);\n return;\n }\n var currentLock;\n var currentStore = retrieveStore();\n if (isLockEnabled) {\n // if someone has lock, retry later\n if (currentStore.lock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n // acquire lock\n currentLock = generateUUID();\n persistWithLock(currentStore.session);\n // if lock is not acquired, retry later\n currentStore = retrieveStore();\n if (currentStore.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n var processedSession = operations.process(currentStore.session);\n if (isLockEnabled) {\n // if lock corrupted after process, retry later\n currentStore = retrieveStore();\n if (currentStore.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n if (processedSession) {\n if (isSessionInExpiredState(processedSession)) {\n expireSession();\n }\n else {\n expandSessionState(processedSession);\n isLockEnabled ? persistWithLock(processedSession) : persistSession(processedSession);\n }\n }\n if (isLockEnabled) {\n // correctly handle lock around expiration would require to handle this case properly at several levels\n // since we don't have evidence of lock issues around expiration, let's just not do the corruption check for it\n if (!(processedSession && isSessionInExpiredState(processedSession))) {\n // if lock corrupted after persist, retry later\n currentStore = retrieveStore();\n if (currentStore.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n persistSession(currentStore.session);\n processedSession = currentStore.session;\n }\n }\n // call after even if session is not persisted in order to perform operations on\n // up-to-date session state value => the value could have been modified by another tab\n (_a = operations.after) === null || _a === void 0 ? void 0 : _a.call(operations, processedSession || currentStore.session);\n next(sessionStoreStrategy);\n}\nfunction retryLater(operations, sessionStore, currentNumberOfRetries) {\n setTimeout(function () {\n processSessionStoreOperations(operations, sessionStore, currentNumberOfRetries + 1);\n }, LOCK_RETRY_DELAY);\n}\nfunction next(sessionStore) {\n ongoingOperations = undefined;\n var nextOperations = bufferedOperations.shift();\n if (nextOperations) {\n processSessionStoreOperations(nextOperations, sessionStore);\n }\n}\n//# sourceMappingURL=sessionStoreOperations.js.map","import { clearInterval, setInterval } from '../../tools/timer';\nimport { Observable } from '../../tools/observable';\nimport { ONE_SECOND, dateNow } from '../../tools/utils/timeUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { assign } from '../../tools/utils/polyfills';\nimport { selectCookieStrategy, initCookieStrategy } from './storeStrategies/sessionInCookie';\nimport { getExpiredSessionState, isSessionInExpiredState, isSessionInNotStartedState, isSessionStarted, } from './sessionState';\nimport { initLocalStorageStrategy, selectLocalStorageStrategy } from './storeStrategies/sessionInLocalStorage';\nimport { processSessionStoreOperations } from './sessionStoreOperations';\n/**\n * Every second, the storage will be polled to check for any change that can occur\n * to the session state in another browser tab, or another window.\n * This value has been determined from our previous cookie-only implementation.\n */\nexport var STORAGE_POLL_DELAY = ONE_SECOND;\n/**\n * Checks if cookies are available as the preferred storage\n * Else, checks if LocalStorage is allowed and available\n */\nexport function selectSessionStoreStrategyType(initConfiguration) {\n var sessionStoreStrategyType = selectCookieStrategy(initConfiguration);\n if (!sessionStoreStrategyType && initConfiguration.allowFallbackToLocalStorage) {\n sessionStoreStrategyType = selectLocalStorageStrategy();\n }\n return sessionStoreStrategyType;\n}\n/**\n * Different session concepts:\n * - tracked, the session has an id and is updated along the user navigation\n * - not tracked, the session does not have an id but it is updated along the user navigation\n * - inactive, no session in store or session expired, waiting for a renew session\n */\nexport function startSessionStore(sessionStoreStrategyType, productKey, computeSessionState) {\n var renewObservable = new Observable();\n var expireObservable = new Observable();\n var sessionStateUpdateObservable = new Observable();\n var sessionStoreStrategy = sessionStoreStrategyType.type === 'Cookie'\n ? initCookieStrategy(sessionStoreStrategyType.cookieOptions)\n : initLocalStorageStrategy();\n var expireSession = sessionStoreStrategy.expireSession;\n var watchSessionTimeoutId = setInterval(watchSession, STORAGE_POLL_DELAY);\n var sessionCache;\n startSession();\n var _a = throttle(function () {\n processSessionStoreOperations({\n process: function (sessionState) {\n if (isSessionInNotStartedState(sessionState)) {\n return;\n }\n var synchronizedSession = synchronizeSession(sessionState);\n expandOrRenewSessionState(synchronizedSession);\n return synchronizedSession;\n },\n after: function (sessionState) {\n if (isSessionStarted(sessionState) && !hasSessionInCache()) {\n renewSessionInCache(sessionState);\n }\n sessionCache = sessionState;\n },\n }, sessionStoreStrategy);\n }, STORAGE_POLL_DELAY), throttledExpandOrRenewSession = _a.throttled, cancelExpandOrRenewSession = _a.cancel;\n function expandSession() {\n processSessionStoreOperations({\n process: function (sessionState) { return (hasSessionInCache() ? synchronizeSession(sessionState) : undefined); },\n }, sessionStoreStrategy);\n }\n /**\n * allows two behaviors:\n * - if the session is active, synchronize the session cache without updating the session store\n * - if the session is not active, clear the session store and expire the session cache\n */\n function watchSession() {\n processSessionStoreOperations({\n process: function (sessionState) { return (isSessionInExpiredState(sessionState) ? getExpiredSessionState() : undefined); },\n after: synchronizeSession,\n }, sessionStoreStrategy);\n }\n function synchronizeSession(sessionState) {\n if (isSessionInExpiredState(sessionState)) {\n sessionState = getExpiredSessionState();\n }\n if (hasSessionInCache()) {\n if (isSessionInCacheOutdated(sessionState)) {\n expireSessionInCache();\n }\n else {\n sessionStateUpdateObservable.notify({ previousState: sessionCache, newState: sessionState });\n sessionCache = sessionState;\n }\n }\n return sessionState;\n }\n function startSession() {\n processSessionStoreOperations({\n process: function (sessionState) {\n if (isSessionInNotStartedState(sessionState)) {\n return getExpiredSessionState();\n }\n },\n after: function (sessionState) {\n sessionCache = sessionState;\n },\n }, sessionStoreStrategy);\n }\n function expandOrRenewSessionState(sessionState) {\n if (isSessionInNotStartedState(sessionState)) {\n return false;\n }\n var _a = computeSessionState(sessionState[productKey]), trackingType = _a.trackingType, isTracked = _a.isTracked;\n sessionState[productKey] = trackingType;\n delete sessionState.isExpired;\n if (isTracked && !sessionState.id) {\n sessionState.id = generateUUID();\n sessionState.created = String(dateNow());\n }\n }\n function hasSessionInCache() {\n return sessionCache[productKey] !== undefined;\n }\n function isSessionInCacheOutdated(sessionState) {\n return sessionCache.id !== sessionState.id || sessionCache[productKey] !== sessionState[productKey];\n }\n function expireSessionInCache() {\n sessionCache = getExpiredSessionState();\n expireObservable.notify();\n }\n function renewSessionInCache(sessionState) {\n sessionCache = sessionState;\n renewObservable.notify();\n }\n function updateSessionState(partialSessionState) {\n processSessionStoreOperations({\n process: function (sessionState) { return assign({}, sessionState, partialSessionState); },\n after: synchronizeSession,\n }, sessionStoreStrategy);\n }\n return {\n expandOrRenewSession: throttledExpandOrRenewSession,\n expandSession: expandSession,\n getSession: function () { return sessionCache; },\n renewObservable: renewObservable,\n expireObservable: expireObservable,\n sessionStateUpdateObservable: sessionStateUpdateObservable,\n restartSession: startSession,\n expire: function () {\n cancelExpandOrRenewSession();\n expireSession();\n synchronizeSession(getExpiredSessionState());\n },\n stop: function () {\n clearInterval(watchSessionTimeoutId);\n },\n updateSessionState: updateSessionState,\n };\n}\n//# sourceMappingURL=sessionStore.js.map","import { timeStampNow } from '../../tools/utils/timeUtils';\nimport { normalizeUrl } from '../../tools/utils/urlPolyfill';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { INTAKE_SITE_US1, INTAKE_SITE_FED_STAGING, PCI_INTAKE_HOST_US1 } from './intakeSites';\nexport function createEndpointBuilder(initConfiguration, trackType, configurationTags) {\n var buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, trackType);\n return {\n build: function (api, payload) {\n var parameters = buildEndpointParameters(initConfiguration, trackType, configurationTags, api, payload);\n return buildUrlWithParameters(parameters);\n },\n urlPrefix: buildUrlWithParameters(''),\n trackType: trackType,\n };\n}\n/**\n * Create a function used to build a full endpoint url from provided parameters. The goal of this\n * function is to pre-compute some parts of the URL to avoid re-computing everything on every\n * request, as only parameters are changing.\n */\nfunction createEndpointUrlWithParametersBuilder(initConfiguration, trackType) {\n var path = \"/api/v2/\".concat(trackType);\n var proxy = initConfiguration.proxy;\n if (typeof proxy === 'string') {\n var normalizedProxyUrl_1 = normalizeUrl(proxy);\n return function (parameters) { return \"\".concat(normalizedProxyUrl_1, \"?ddforward=\").concat(encodeURIComponent(\"\".concat(path, \"?\").concat(parameters))); };\n }\n if (typeof proxy === 'function') {\n return function (parameters) { return proxy({ path: path, parameters: parameters }); };\n }\n var host = buildEndpointHost(trackType, initConfiguration);\n return function (parameters) { return \"https://\".concat(host).concat(path, \"?\").concat(parameters); };\n}\nfunction buildEndpointHost(trackType, initConfiguration) {\n var _a = initConfiguration.site, site = _a === void 0 ? INTAKE_SITE_US1 : _a, internalAnalyticsSubdomain = initConfiguration.internalAnalyticsSubdomain;\n if (trackType === 'logs' && initConfiguration.usePciIntake && site === INTAKE_SITE_US1) {\n return PCI_INTAKE_HOST_US1;\n }\n if (internalAnalyticsSubdomain && site === INTAKE_SITE_US1) {\n return \"\".concat(internalAnalyticsSubdomain, \".\").concat(INTAKE_SITE_US1);\n }\n if (site === INTAKE_SITE_FED_STAGING) {\n return \"http-intake.logs.\".concat(site);\n }\n var domainParts = site.split('.');\n var extension = domainParts.pop();\n return \"browser-intake-\".concat(domainParts.join('-'), \".\").concat(extension);\n}\n/**\n * Build parameters to be used for an intake request. Parameters should be re-built for each\n * request, as they change randomly.\n */\nfunction buildEndpointParameters(_a, trackType, configurationTags, api, _b) {\n var clientToken = _a.clientToken, internalAnalyticsSubdomain = _a.internalAnalyticsSubdomain;\n var retry = _b.retry, encoding = _b.encoding;\n var tags = [\"sdk_version:\".concat(\"5.27.0\"), \"api:\".concat(api)].concat(configurationTags);\n if (retry) {\n tags.push(\"retry_count:\".concat(retry.count), \"retry_after:\".concat(retry.lastFailureStatus));\n }\n var parameters = [\n 'ddsource=browser',\n \"ddtags=\".concat(encodeURIComponent(tags.join(','))),\n \"dd-api-key=\".concat(clientToken),\n \"dd-evp-origin-version=\".concat(encodeURIComponent(\"5.27.0\")),\n 'dd-evp-origin=browser',\n \"dd-request-id=\".concat(generateUUID()),\n ];\n if (encoding) {\n parameters.push(\"dd-evp-encoding=\".concat(encoding));\n }\n if (trackType === 'rum') {\n parameters.push(\"batch_time=\".concat(timeStampNow()));\n }\n if (internalAnalyticsSubdomain) {\n parameters.reverse();\n }\n return parameters.join('&');\n}\n//# sourceMappingURL=endpointBuilder.js.map","import { DOCS_ORIGIN, MORE_DETAILS, display } from '../../tools/display';\nexport var TAG_SIZE_LIMIT = 200;\nexport function buildTags(configuration) {\n var env = configuration.env, service = configuration.service, version = configuration.version, datacenter = configuration.datacenter;\n var tags = [];\n if (env) {\n tags.push(buildTag('env', env));\n }\n if (service) {\n tags.push(buildTag('service', service));\n }\n if (version) {\n tags.push(buildTag('version', version));\n }\n if (datacenter) {\n tags.push(buildTag('datacenter', datacenter));\n }\n return tags;\n}\nexport function buildTag(key, rawValue) {\n // See https://docs.datadoghq.com/getting_started/tagging/#defining-tags for tags syntax. Note\n // that the backend may not follow the exact same rules, so we only want to display an informal\n // warning.\n var valueSizeLimit = TAG_SIZE_LIMIT - key.length - 1;\n if (rawValue.length > valueSizeLimit || hasForbiddenCharacters(rawValue)) {\n display.warn(\"\".concat(key, \" value doesn't meet tag requirements and will be sanitized. \").concat(MORE_DETAILS, \" \").concat(DOCS_ORIGIN, \"/getting_started/tagging/#defining-tags\"));\n }\n // Let the backend do most of the sanitization, but still make sure multiple tags can't be crafted\n // by forging a value containing commas.\n var sanitizedValue = rawValue.replace(/,/g, '_');\n return \"\".concat(key, \":\").concat(sanitizedValue);\n}\nfunction hasForbiddenCharacters(rawValue) {\n // Unicode property escapes is not supported in all browsers, so we use a try/catch.\n // Todo: Remove the try/catch when dropping IE11.\n if (!supportUnicodePropertyEscapes()) {\n return false;\n }\n // We use the Unicode property escapes to match any character that is a letter including other languages like Chinese, Japanese, etc.\n // p{Ll} matches a lowercase letter.\n // p{Lo} matches a letter that is neither uppercase nor lowercase (ex: Japanese characters).\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Unicode_character_class_escape#unicode_property_escapes_vs._character_classes\n return new RegExp('[^\\\\p{Ll}\\\\p{Lo}0-9_:./-]', 'u').test(rawValue);\n}\nexport function supportUnicodePropertyEscapes() {\n try {\n new RegExp('[\\\\p{Ll}]', 'u');\n return true;\n }\n catch (_a) {\n return false;\n }\n}\n//# sourceMappingURL=tags.js.map","import { objectValues, assign } from '../../tools/utils/polyfills';\nimport { createEndpointBuilder } from './endpointBuilder';\nimport { buildTags } from './tags';\nimport { INTAKE_SITE_US1, PCI_INTAKE_HOST_US1 } from './intakeSites';\nexport function computeTransportConfiguration(initConfiguration) {\n var site = initConfiguration.site || INTAKE_SITE_US1;\n var tags = buildTags(initConfiguration);\n var endpointBuilders = computeEndpointBuilders(initConfiguration, tags);\n var intakeUrlPrefixes = computeIntakeUrlPrefixes(endpointBuilders, site);\n var replicaConfiguration = computeReplicaConfiguration(initConfiguration, intakeUrlPrefixes, tags);\n return assign({\n isIntakeUrl: function (url) { return intakeUrlPrefixes.some(function (intakeEndpoint) { return url.indexOf(intakeEndpoint) === 0; }); },\n replica: replicaConfiguration,\n site: site,\n }, endpointBuilders);\n}\nfunction computeEndpointBuilders(initConfiguration, tags) {\n return {\n logsEndpointBuilder: createEndpointBuilder(initConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(initConfiguration, 'rum', tags),\n sessionReplayEndpointBuilder: createEndpointBuilder(initConfiguration, 'replay', tags),\n };\n}\nfunction computeReplicaConfiguration(initConfiguration, intakeUrlPrefixes, tags) {\n if (!initConfiguration.replica) {\n return;\n }\n var replicaConfiguration = assign({}, initConfiguration, {\n site: INTAKE_SITE_US1,\n clientToken: initConfiguration.replica.clientToken,\n });\n var replicaEndpointBuilders = {\n logsEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'rum', tags),\n };\n intakeUrlPrefixes.push.apply(intakeUrlPrefixes, objectValues(replicaEndpointBuilders).map(function (builder) { return builder.urlPrefix; }));\n return assign({ applicationId: initConfiguration.replica.applicationId }, replicaEndpointBuilders);\n}\nfunction computeIntakeUrlPrefixes(endpointBuilders, site) {\n var intakeUrlPrefixes = objectValues(endpointBuilders).map(function (builder) { return builder.urlPrefix; });\n if (site === INTAKE_SITE_US1) {\n intakeUrlPrefixes.push(\"https://\".concat(PCI_INTAKE_HOST_US1, \"/\"));\n }\n return intakeUrlPrefixes;\n}\n//# sourceMappingURL=transportConfiguration.js.map","import { catchUserErrors } from '../../tools/catchUserErrors';\nimport { DOCS_ORIGIN, MORE_DETAILS, display } from '../../tools/display';\nimport { ONE_SECOND } from '../../tools/utils/timeUtils';\nimport { isPercentage } from '../../tools/utils/numberUtils';\nimport { ONE_KIBI_BYTE } from '../../tools/utils/byteUtils';\nimport { objectHasValue } from '../../tools/utils/objectUtils';\nimport { assign } from '../../tools/utils/polyfills';\nimport { selectSessionStoreStrategyType } from '../session/sessionStore';\nimport { TrackingConsent } from '../trackingConsent';\nimport { computeTransportConfiguration } from './transportConfiguration';\nexport var DefaultPrivacyLevel = {\n ALLOW: 'allow',\n MASK: 'mask',\n MASK_USER_INPUT: 'mask-user-input',\n};\nexport var TraceContextInjection = {\n ALL: 'all',\n SAMPLED: 'sampled',\n};\nfunction isString(tag, tagName) {\n if (tag !== undefined && tag !== null && typeof tag !== 'string') {\n display.error(\"\".concat(tagName, \" must be defined as a string\"));\n return false;\n }\n return true;\n}\nfunction isDatadogSite(site) {\n if (site && typeof site === 'string' && !/(datadog|ddog|datad0g|dd0g)/.test(site)) {\n display.error(\"Site should be a valid Datadog site. \".concat(MORE_DETAILS, \" \").concat(DOCS_ORIGIN, \"/getting_started/site/.\"));\n return false;\n }\n return true;\n}\nexport function isSampleRate(sampleRate, name) {\n if (sampleRate !== undefined && !isPercentage(sampleRate)) {\n display.error(\"\".concat(name, \" Sample Rate should be a number between 0 and 100\"));\n return false;\n }\n return true;\n}\nexport function validateAndBuildConfiguration(initConfiguration) {\n var _a, _b, _c, _d, _e;\n if (!initConfiguration || !initConfiguration.clientToken) {\n display.error('Client Token is not configured, we will not send any data.');\n return;\n }\n if (!isDatadogSite(initConfiguration.site) ||\n !isSampleRate(initConfiguration.sessionSampleRate, 'Session') ||\n !isSampleRate(initConfiguration.telemetrySampleRate, 'Telemetry') ||\n !isSampleRate(initConfiguration.telemetryConfigurationSampleRate, 'Telemetry Configuration') ||\n !isSampleRate(initConfiguration.telemetryUsageSampleRate, 'Telemetry Usage') ||\n !isString(initConfiguration.version, 'Version') ||\n !isString(initConfiguration.env, 'Env') ||\n !isString(initConfiguration.service, 'Service')) {\n return;\n }\n if (initConfiguration.trackingConsent !== undefined &&\n !objectHasValue(TrackingConsent, initConfiguration.trackingConsent)) {\n display.error('Tracking Consent should be either \"granted\" or \"not-granted\"');\n return;\n }\n return assign({\n beforeSend: initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),\n sessionStoreStrategyType: selectSessionStoreStrategyType(initConfiguration),\n sessionSampleRate: (_a = initConfiguration.sessionSampleRate) !== null && _a !== void 0 ? _a : 100,\n telemetrySampleRate: (_b = initConfiguration.telemetrySampleRate) !== null && _b !== void 0 ? _b : 20,\n telemetryConfigurationSampleRate: (_c = initConfiguration.telemetryConfigurationSampleRate) !== null && _c !== void 0 ? _c : 5,\n telemetryUsageSampleRate: (_d = initConfiguration.telemetryUsageSampleRate) !== null && _d !== void 0 ? _d : 5,\n service: initConfiguration.service || undefined,\n silentMultipleInit: !!initConfiguration.silentMultipleInit,\n allowUntrustedEvents: !!initConfiguration.allowUntrustedEvents,\n trackingConsent: (_e = initConfiguration.trackingConsent) !== null && _e !== void 0 ? _e : TrackingConsent.GRANTED,\n storeContextsAcrossPages: !!initConfiguration.storeContextsAcrossPages,\n /**\n * beacon payload max queue size implementation is 64kb\n * ensure that we leave room for logs, rum and potential other users\n */\n batchBytesLimit: 16 * ONE_KIBI_BYTE,\n eventRateLimiterThreshold: 3000,\n maxTelemetryEventsPerPage: 15,\n /**\n * flush automatically, aim to be lower than ALB connection timeout\n * to maximize connection reuse.\n */\n flushTimeout: (30 * ONE_SECOND),\n /**\n * Logs intake limit\n */\n batchMessagesLimit: 50,\n messageBytesLimit: 256 * ONE_KIBI_BYTE,\n }, computeTransportConfiguration(initConfiguration));\n}\nexport function serializeConfiguration(initConfiguration) {\n return {\n session_sample_rate: initConfiguration.sessionSampleRate,\n telemetry_sample_rate: initConfiguration.telemetrySampleRate,\n telemetry_configuration_sample_rate: initConfiguration.telemetryConfigurationSampleRate,\n telemetry_usage_sample_rate: initConfiguration.telemetryUsageSampleRate,\n use_before_send: !!initConfiguration.beforeSend,\n use_cross_site_session_cookie: initConfiguration.useCrossSiteSessionCookie,\n use_partitioned_cross_site_session_cookie: initConfiguration.usePartitionedCrossSiteSessionCookie,\n use_secure_session_cookie: initConfiguration.useSecureSessionCookie,\n use_proxy: !!initConfiguration.proxy,\n silent_multiple_init: initConfiguration.silentMultipleInit,\n track_session_across_subdomains: initConfiguration.trackSessionAcrossSubdomains,\n allow_fallback_to_local_storage: !!initConfiguration.allowFallbackToLocalStorage,\n store_contexts_across_pages: !!initConfiguration.storeContextsAcrossPages,\n allow_untrusted_events: !!initConfiguration.allowUntrustedEvents,\n tracking_consent: initConfiguration.trackingConsent,\n };\n}\n//# sourceMappingURL=configuration.js.map","import { startsWith } from './utils/polyfills';\nimport { display } from './display';\nimport { getType } from './utils/typeUtils';\nexport function isMatchOption(item) {\n var itemType = getType(item);\n return itemType === 'string' || itemType === 'function' || item instanceof RegExp;\n}\n/**\n * Returns true if value can be matched by at least one of the provided MatchOptions.\n * When comparing strings, setting useStartsWith to true will compare the value with the start of\n * the option, instead of requiring an exact match.\n */\nexport function matchList(list, value, useStartsWith) {\n if (useStartsWith === void 0) { useStartsWith = false; }\n return list.some(function (item) {\n try {\n if (typeof item === 'function') {\n return item(value);\n }\n else if (item instanceof RegExp) {\n return item.test(value);\n }\n else if (typeof item === 'string') {\n return useStartsWith ? startsWith(value, item) : item === value;\n }\n }\n catch (e) {\n display.error(e);\n }\n return false;\n });\n}\n//# sourceMappingURL=matchOption.js.map","import { objectEntries, shallowClone, performDraw, isNumber, assign, find, getType, isMatchOption, matchList, TraceContextInjection, } from '@datadog/browser-core';\nexport function isTracingOption(item) {\n var expectedItem = item;\n return (getType(expectedItem) === 'object' &&\n isMatchOption(expectedItem.match) &&\n Array.isArray(expectedItem.propagatorTypes));\n}\n/**\n * Clear tracing information to avoid incomplete traces. Ideally, we should do it when the\n * request did not reach the server, but the browser does not expose this. So, we clear tracing\n * information if the request ended with status 0 without being aborted by the application.\n *\n * Reasoning:\n *\n * * Applications are usually aborting requests after a bit of time, for example when the user is\n * typing (autocompletion) or navigating away (in a SPA). With a performant device and good\n * network conditions, the request is likely to reach the server before being canceled.\n *\n * * Requests aborted otherwise (ex: lack of internet, CORS issue, blocked by a privacy extension)\n * are likely to finish quickly and without reaching the server.\n *\n * Of course, it might not be the case every time, but it should limit having incomplete traces a\n * bit.\n * */\nexport function clearTracingIfNeeded(context) {\n if (context.status === 0 && !context.isAborted) {\n context.traceId = undefined;\n context.spanId = undefined;\n context.traceSampled = undefined;\n }\n}\nexport function startTracer(configuration, sessionManager) {\n return {\n clearTracingIfNeeded: clearTracingIfNeeded,\n traceFetch: function (context) {\n return injectHeadersIfTracingAllowed(configuration, context, sessionManager, function (tracingHeaders) {\n var _a;\n if (context.input instanceof Request && !((_a = context.init) === null || _a === void 0 ? void 0 : _a.headers)) {\n context.input = new Request(context.input);\n Object.keys(tracingHeaders).forEach(function (key) {\n ;\n context.input.headers.append(key, tracingHeaders[key]);\n });\n }\n else {\n context.init = shallowClone(context.init);\n var headers_1 = [];\n if (context.init.headers instanceof Headers) {\n context.init.headers.forEach(function (value, key) {\n headers_1.push([key, value]);\n });\n }\n else if (Array.isArray(context.init.headers)) {\n context.init.headers.forEach(function (header) {\n headers_1.push(header);\n });\n }\n else if (context.init.headers) {\n Object.keys(context.init.headers).forEach(function (key) {\n headers_1.push([key, context.init.headers[key]]);\n });\n }\n context.init.headers = headers_1.concat(objectEntries(tracingHeaders));\n }\n });\n },\n traceXhr: function (context, xhr) {\n return injectHeadersIfTracingAllowed(configuration, context, sessionManager, function (tracingHeaders) {\n Object.keys(tracingHeaders).forEach(function (name) {\n xhr.setRequestHeader(name, tracingHeaders[name]);\n });\n });\n },\n };\n}\nfunction injectHeadersIfTracingAllowed(configuration, context, sessionManager, inject) {\n if (!isTracingSupported() || !sessionManager.findTrackedSession()) {\n return;\n }\n var tracingOption = find(configuration.allowedTracingUrls, function (tracingOption) {\n return matchList([tracingOption.match], context.url, true);\n });\n if (!tracingOption) {\n return;\n }\n context.traceSampled = !isNumber(configuration.traceSampleRate) || performDraw(configuration.traceSampleRate);\n if (!context.traceSampled && configuration.traceContextInjection !== TraceContextInjection.ALL) {\n return;\n }\n context.traceId = createTraceIdentifier();\n context.spanId = createTraceIdentifier();\n inject(makeTracingHeaders(context.traceId, context.spanId, context.traceSampled, tracingOption.propagatorTypes));\n}\nexport function isTracingSupported() {\n return getCrypto() !== undefined;\n}\nexport function getCrypto() {\n return window.crypto || window.msCrypto;\n}\n/**\n * When trace is not sampled, set priority to '0' instead of not adding the tracing headers\n * to prepare the implementation for sampling delegation.\n */\nfunction makeTracingHeaders(traceId, spanId, traceSampled, propagatorTypes) {\n var tracingHeaders = {};\n propagatorTypes.forEach(function (propagatorType) {\n switch (propagatorType) {\n case 'datadog': {\n assign(tracingHeaders, {\n 'x-datadog-origin': 'rum',\n 'x-datadog-parent-id': spanId.toDecimalString(),\n 'x-datadog-sampling-priority': traceSampled ? '1' : '0',\n 'x-datadog-trace-id': traceId.toDecimalString(),\n });\n break;\n }\n // https://www.w3.org/TR/trace-context/\n case 'tracecontext': {\n assign(tracingHeaders, {\n traceparent: \"00-0000000000000000\".concat(traceId.toPaddedHexadecimalString(), \"-\").concat(spanId.toPaddedHexadecimalString(), \"-0\").concat(traceSampled ? '1' : '0'),\n });\n break;\n }\n // https://github.com/openzipkin/b3-propagation\n case 'b3': {\n assign(tracingHeaders, {\n b3: \"\".concat(traceId.toPaddedHexadecimalString(), \"-\").concat(spanId.toPaddedHexadecimalString(), \"-\").concat(traceSampled ? '1' : '0'),\n });\n break;\n }\n case 'b3multi': {\n assign(tracingHeaders, {\n 'X-B3-TraceId': traceId.toPaddedHexadecimalString(),\n 'X-B3-SpanId': spanId.toPaddedHexadecimalString(),\n 'X-B3-Sampled': traceSampled ? '1' : '0',\n });\n break;\n }\n }\n });\n return tracingHeaders;\n}\nexport function createTraceIdentifier() {\n var buffer = new Uint8Array(8);\n getCrypto().getRandomValues(buffer);\n buffer[0] = buffer[0] & 0x7f; // force 63-bit\n function readInt32(offset) {\n return buffer[offset] * 16777216 + (buffer[offset + 1] << 16) + (buffer[offset + 2] << 8) + buffer[offset + 3];\n }\n function toString(radix) {\n var high = readInt32(0);\n var low = readInt32(4);\n var str = '';\n do {\n var mod = (high % radix) * 4294967296 + low;\n high = Math.floor(high / radix);\n low = Math.floor(mod / radix);\n str = (mod % radix).toString(radix) + str;\n } while (high || low);\n return str;\n }\n /**\n * Format used everywhere except the trace intake\n */\n function toDecimalString() {\n return toString(10);\n }\n /**\n * Format used by OTel headers\n */\n function toPaddedHexadecimalString() {\n var traceId = toString(16);\n return Array(17 - traceId.length).join('0') + traceId;\n }\n return {\n toDecimalString: toDecimalString,\n toPaddedHexadecimalString: toPaddedHexadecimalString,\n };\n}\n/* eslint-enable no-bitwise */\n//# sourceMappingURL=tracer.js.map","import { getType, arrayFrom, isMatchOption, serializeConfiguration, assign, DefaultPrivacyLevel, TraceContextInjection, display, objectHasValue, validateAndBuildConfiguration, isSampleRate, } from '@datadog/browser-core';\nimport { isTracingOption } from '../tracing/tracer';\nexport var DEFAULT_PROPAGATOR_TYPES = ['tracecontext', 'datadog'];\nexport function validateAndBuildRumConfiguration(initConfiguration) {\n var _a, _b;\n if (!initConfiguration.applicationId) {\n display.error('Application ID is not configured, no RUM data will be collected.');\n return;\n }\n if (!isSampleRate(initConfiguration.sessionReplaySampleRate, 'Session Replay') ||\n !isSampleRate(initConfiguration.traceSampleRate, 'Trace')) {\n return;\n }\n if (initConfiguration.excludedActivityUrls !== undefined && !Array.isArray(initConfiguration.excludedActivityUrls)) {\n display.error('Excluded Activity Urls should be an array');\n return;\n }\n var allowedTracingUrls = validateAndBuildTracingOptions(initConfiguration);\n if (!allowedTracingUrls) {\n return;\n }\n var baseConfiguration = validateAndBuildConfiguration(initConfiguration);\n if (!baseConfiguration) {\n return;\n }\n return assign({\n applicationId: initConfiguration.applicationId,\n version: initConfiguration.version || undefined,\n actionNameAttribute: initConfiguration.actionNameAttribute,\n sessionReplaySampleRate: (_a = initConfiguration.sessionReplaySampleRate) !== null && _a !== void 0 ? _a : 0,\n startSessionReplayRecordingManually: !!initConfiguration.startSessionReplayRecordingManually,\n traceSampleRate: initConfiguration.traceSampleRate,\n allowedTracingUrls: allowedTracingUrls,\n excludedActivityUrls: (_b = initConfiguration.excludedActivityUrls) !== null && _b !== void 0 ? _b : [],\n workerUrl: initConfiguration.workerUrl,\n compressIntakeRequests: !!initConfiguration.compressIntakeRequests,\n trackUserInteractions: !!initConfiguration.trackUserInteractions,\n trackViewsManually: !!initConfiguration.trackViewsManually,\n trackResources: !!initConfiguration.trackResources,\n trackLongTasks: !!initConfiguration.trackLongTasks,\n subdomain: initConfiguration.subdomain,\n defaultPrivacyLevel: objectHasValue(DefaultPrivacyLevel, initConfiguration.defaultPrivacyLevel)\n ? initConfiguration.defaultPrivacyLevel\n : DefaultPrivacyLevel.MASK,\n enablePrivacyForActionName: !!initConfiguration.enablePrivacyForActionName,\n customerDataTelemetrySampleRate: 1,\n traceContextInjection: objectHasValue(TraceContextInjection, initConfiguration.traceContextInjection)\n ? initConfiguration.traceContextInjection\n : TraceContextInjection.ALL,\n plugins: initConfiguration.betaPlugins || [],\n }, baseConfiguration);\n}\n/**\n * Validates allowedTracingUrls and converts match options to tracing options\n */\nfunction validateAndBuildTracingOptions(initConfiguration) {\n if (initConfiguration.allowedTracingUrls === undefined) {\n return [];\n }\n if (!Array.isArray(initConfiguration.allowedTracingUrls)) {\n display.error('Allowed Tracing URLs should be an array');\n return;\n }\n if (initConfiguration.allowedTracingUrls.length !== 0 && initConfiguration.service === undefined) {\n display.error('Service needs to be configured when tracing is enabled');\n return;\n }\n // Convert from (MatchOption | TracingOption) to TracingOption, remove unknown properties\n var tracingOptions = [];\n initConfiguration.allowedTracingUrls.forEach(function (option) {\n if (isMatchOption(option)) {\n tracingOptions.push({ match: option, propagatorTypes: DEFAULT_PROPAGATOR_TYPES });\n }\n else if (isTracingOption(option)) {\n tracingOptions.push(option);\n }\n else {\n display.warn('Allowed Tracing Urls parameters should be a string, RegExp, function, or an object. Ignoring parameter', option);\n }\n });\n return tracingOptions;\n}\n/**\n * Combines the selected tracing propagators from the different options in allowedTracingUrls\n */\nfunction getSelectedTracingPropagators(configuration) {\n var usedTracingPropagators = new Set();\n if (Array.isArray(configuration.allowedTracingUrls) && configuration.allowedTracingUrls.length > 0) {\n configuration.allowedTracingUrls.forEach(function (option) {\n if (isMatchOption(option)) {\n DEFAULT_PROPAGATOR_TYPES.forEach(function (propagatorType) { return usedTracingPropagators.add(propagatorType); });\n }\n else if (getType(option) === 'object' && Array.isArray(option.propagatorTypes)) {\n // Ensure we have an array, as we cannot rely on types yet (configuration is provided by users)\n option.propagatorTypes.forEach(function (propagatorType) { return usedTracingPropagators.add(propagatorType); });\n }\n });\n }\n return arrayFrom(usedTracingPropagators);\n}\nexport function serializeRumConfiguration(configuration) {\n var _a;\n var baseSerializedConfiguration = serializeConfiguration(configuration);\n return assign({\n session_replay_sample_rate: configuration.sessionReplaySampleRate,\n start_session_replay_recording_manually: configuration.startSessionReplayRecordingManually,\n trace_sample_rate: configuration.traceSampleRate,\n trace_context_injection: configuration.traceContextInjection,\n action_name_attribute: configuration.actionNameAttribute,\n use_allowed_tracing_urls: Array.isArray(configuration.allowedTracingUrls) && configuration.allowedTracingUrls.length > 0,\n selected_tracing_propagators: getSelectedTracingPropagators(configuration),\n default_privacy_level: configuration.defaultPrivacyLevel,\n enable_privacy_for_action_name: configuration.enablePrivacyForActionName,\n use_excluded_activity_urls: Array.isArray(configuration.excludedActivityUrls) && configuration.excludedActivityUrls.length > 0,\n use_worker_url: !!configuration.workerUrl,\n compress_intake_requests: configuration.compressIntakeRequests,\n track_views_manually: configuration.trackViewsManually,\n track_user_interactions: configuration.trackUserInteractions,\n track_resources: configuration.trackResources,\n track_long_task: configuration.trackLongTasks,\n plugins: (_a = configuration.betaPlugins) === null || _a === void 0 ? void 0 : _a.map(function (plugin) { var _a; return assign({ name: plugin.name }, (_a = plugin.getConfigurationTelemetry) === null || _a === void 0 ? void 0 : _a.call(plugin)); }),\n }, baseSerializedConfiguration);\n}\n//# sourceMappingURL=configuration.js.map","import { display, addEventListener, assign } from '@datadog/browser-core';\nexport var REMOTE_CONFIGURATION_URL = 'https://d3uc069fcn7uxw.cloudfront.net/configuration';\nexport function fetchAndApplyRemoteConfiguration(initConfiguration, callback) {\n fetchRemoteConfiguration(initConfiguration, function (remoteInitConfiguration) {\n callback(applyRemoteConfiguration(initConfiguration, remoteInitConfiguration));\n });\n}\nexport function applyRemoteConfiguration(initConfiguration, remoteInitConfiguration) {\n return assign({}, initConfiguration, remoteInitConfiguration);\n}\nexport function fetchRemoteConfiguration(configuration, callback) {\n var xhr = new XMLHttpRequest();\n addEventListener(configuration, xhr, 'load', function () {\n if (xhr.status === 200) {\n callback(JSON.parse(xhr.responseText));\n }\n else {\n displayRemoteConfigurationFetchingError();\n }\n });\n addEventListener(configuration, xhr, 'error', function () {\n displayRemoteConfigurationFetchingError();\n });\n xhr.open('GET', \"\".concat(REMOTE_CONFIGURATION_URL, \"/\").concat(encodeURIComponent(configuration.remoteConfigurationId), \".json\"));\n xhr.send();\n}\nfunction displayRemoteConfigurationFetchingError() {\n display.error('Error fetching the remote configuration.');\n}\n//# sourceMappingURL=remoteConfiguration.js.map","import { createBoundedBuffer, display, canUseEventBridge, displayAlreadyInitializedError, willSyntheticsInjectRum, noop, timeStampNow, clocksNow, assign, getEventBridge, ExperimentalFeature, isExperimentalFeatureEnabled, initFeatureFlags, addTelemetryConfiguration, initFetchObservable, } from '@datadog/browser-core';\nimport { validateAndBuildRumConfiguration, } from '../domain/configuration';\nimport { startDurationVital, stopDurationVital } from '../domain/vital/vitalCollection';\nimport { fetchAndApplyRemoteConfiguration, serializeRumConfiguration } from '../domain/configuration';\nimport { callPluginsMethod } from '../domain/plugins';\nexport function createPreStartStrategy(_a, getCommonContext, trackingConsentState, customVitalsState, doStartRum) {\n var ignoreInitIfSyntheticsWillInjectRum = _a.ignoreInitIfSyntheticsWillInjectRum, startDeflateWorker = _a.startDeflateWorker;\n var bufferApiCalls = createBoundedBuffer();\n var firstStartViewCall;\n var deflateWorker;\n var cachedInitConfiguration;\n var cachedConfiguration;\n var trackingConsentStateSubscription = trackingConsentState.observable.subscribe(tryStartRum);\n function tryStartRum() {\n if (!cachedInitConfiguration || !cachedConfiguration || !trackingConsentState.isGranted()) {\n return;\n }\n trackingConsentStateSubscription.unsubscribe();\n var initialViewOptions;\n if (cachedConfiguration.trackViewsManually) {\n if (!firstStartViewCall) {\n return;\n }\n // An initial view is always created when starting RUM.\n // When tracking views automatically, any startView call before RUM start creates an extra\n // view.\n // When tracking views manually, we use the ViewOptions from the first startView call as the\n // initial view options, and we remove the actual startView call so we don't create an extra\n // view.\n bufferApiCalls.remove(firstStartViewCall.callback);\n initialViewOptions = firstStartViewCall.options;\n }\n var startRumResult = doStartRum(cachedConfiguration, deflateWorker, initialViewOptions);\n bufferApiCalls.drain(startRumResult);\n }\n function doInit(initConfiguration) {\n var eventBridgeAvailable = canUseEventBridge();\n if (eventBridgeAvailable) {\n initConfiguration = overrideInitConfigurationForBridge(initConfiguration);\n }\n // Update the exposed initConfiguration to reflect the bridge and remote configuration overrides\n cachedInitConfiguration = initConfiguration;\n addTelemetryConfiguration(serializeRumConfiguration(initConfiguration));\n if (cachedConfiguration) {\n displayAlreadyInitializedError('DD_RUM', initConfiguration);\n return;\n }\n var configuration = validateAndBuildRumConfiguration(initConfiguration);\n if (!configuration) {\n return;\n }\n if (!eventBridgeAvailable && !configuration.sessionStoreStrategyType) {\n display.warn('No storage available for session. We will not send any data.');\n return;\n }\n if (configuration.compressIntakeRequests && !eventBridgeAvailable && startDeflateWorker) {\n deflateWorker = startDeflateWorker(configuration, 'Datadog RUM', \n // Worker initialization can fail asynchronously, especially in Firefox where even CSP\n // issues are reported asynchronously. For now, the SDK will continue its execution even if\n // data won't be sent to Datadog. We could improve this behavior in the future.\n noop);\n if (!deflateWorker) {\n // `startDeflateWorker` should have logged an error message explaining the issue\n return;\n }\n }\n cachedConfiguration = configuration;\n // Instrumuent fetch to track network requests\n // This is needed in case the consent is not granted and some cutsomer\n // library (Apollo Client) is storing uninstrumented fetch to be used later\n // The subscrption is needed so that the instrumentation process is completed\n initFetchObservable().subscribe(noop);\n trackingConsentState.tryToInit(configuration.trackingConsent);\n tryStartRum();\n }\n var addDurationVital = function (vital) {\n bufferApiCalls.add(function (startRumResult) { return startRumResult.addDurationVital(vital); });\n };\n return {\n init: function (initConfiguration, publicApi) {\n if (!initConfiguration) {\n display.error('Missing configuration');\n return;\n }\n // Set the experimental feature flags as early as possible, so we can use them in most places\n initFeatureFlags(initConfiguration.enableExperimentalFeatures);\n // Expose the initial configuration regardless of initialization success.\n cachedInitConfiguration = initConfiguration;\n // If we are in a Synthetics test configured to automatically inject a RUM instance, we want\n // to completely discard the customer application RUM instance by ignoring their init() call.\n // But, we should not ignore the init() call from the Synthetics-injected RUM instance, so the\n // internal `ignoreInitIfSyntheticsWillInjectRum` option is here to bypass this condition.\n if (ignoreInitIfSyntheticsWillInjectRum && willSyntheticsInjectRum()) {\n return;\n }\n callPluginsMethod(initConfiguration.betaPlugins, 'onInit', { initConfiguration: initConfiguration, publicApi: publicApi });\n if (initConfiguration.remoteConfigurationId &&\n isExperimentalFeatureEnabled(ExperimentalFeature.REMOTE_CONFIGURATION)) {\n fetchAndApplyRemoteConfiguration(initConfiguration, doInit);\n }\n else {\n doInit(initConfiguration);\n }\n },\n get initConfiguration() {\n return cachedInitConfiguration;\n },\n getInternalContext: noop,\n stopSession: noop,\n addTiming: function (name, time) {\n if (time === void 0) { time = timeStampNow(); }\n bufferApiCalls.add(function (startRumResult) { return startRumResult.addTiming(name, time); });\n },\n startView: function (options, startClocks) {\n if (startClocks === void 0) { startClocks = clocksNow(); }\n var callback = function (startRumResult) {\n startRumResult.startView(options, startClocks);\n };\n bufferApiCalls.add(callback);\n if (!firstStartViewCall) {\n firstStartViewCall = { options: options, callback: callback };\n tryStartRum();\n }\n },\n updateViewName: function (name) {\n bufferApiCalls.add(function (startRumResult) { return startRumResult.updateViewName(name); });\n },\n setViewContext: function (context) {\n bufferApiCalls.add(function (startRumResult) { return startRumResult.setViewContext(context); });\n },\n setViewContextProperty: function (key, value) {\n bufferApiCalls.add(function (startRumResult) { return startRumResult.setViewContextProperty(key, value); });\n },\n addAction: function (action, commonContext) {\n if (commonContext === void 0) { commonContext = getCommonContext(); }\n bufferApiCalls.add(function (startRumResult) { return startRumResult.addAction(action, commonContext); });\n },\n addError: function (providedError, commonContext) {\n if (commonContext === void 0) { commonContext = getCommonContext(); }\n bufferApiCalls.add(function (startRumResult) { return startRumResult.addError(providedError, commonContext); });\n },\n addFeatureFlagEvaluation: function (key, value) {\n bufferApiCalls.add(function (startRumResult) { return startRumResult.addFeatureFlagEvaluation(key, value); });\n },\n startDurationVital: function (name, options) {\n return startDurationVital(customVitalsState, name, options);\n },\n stopDurationVital: function (name, options) {\n stopDurationVital(addDurationVital, customVitalsState, name, options);\n },\n addDurationVital: addDurationVital,\n };\n}\nfunction overrideInitConfigurationForBridge(initConfiguration) {\n var _a, _b;\n return assign({}, initConfiguration, {\n applicationId: '00000000-aaaa-0000-aaaa-000000000000',\n clientToken: 'empty',\n sessionSampleRate: 100,\n defaultPrivacyLevel: (_a = initConfiguration.defaultPrivacyLevel) !== null && _a !== void 0 ? _a : (_b = getEventBridge()) === null || _b === void 0 ? void 0 : _b.getPrivacyLevel(),\n });\n}\n//# sourceMappingURL=preStartRum.js.map","export function callPluginsMethod(plugins, methodName, parameter) {\n if (!plugins) {\n return;\n }\n for (var _i = 0, plugins_1 = plugins; _i < plugins_1.length; _i++) {\n var plugin = plugins_1[_i];\n var method = plugin[methodName];\n if (method) {\n method(parameter);\n }\n }\n}\n//# sourceMappingURL=plugins.js.map","import { Observable } from '../tools/observable';\nimport { objectValues, includes } from '../tools/utils/polyfills';\nimport { addEventListeners, addEventListener } from './addEventListener';\nexport var PageExitReason = {\n HIDDEN: 'visibility_hidden',\n UNLOADING: 'before_unload',\n PAGEHIDE: 'page_hide',\n FROZEN: 'page_frozen',\n};\nexport function createPageExitObservable(configuration) {\n return new Observable(function (observable) {\n var stopListeners = addEventListeners(configuration, window, [\"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, \"freeze\" /* DOM_EVENT.FREEZE */], function (event) {\n if (event.type === \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */ && document.visibilityState === 'hidden') {\n /**\n * Only event that guarantee to fire on mobile devices when the page transitions to background state\n * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.\n */\n observable.notify({ reason: PageExitReason.HIDDEN });\n }\n else if (event.type === \"freeze\" /* DOM_EVENT.FREEZE */) {\n /**\n * After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)\n * Allow to collect events happening between hidden and frozen state.\n */\n observable.notify({ reason: PageExitReason.FROZEN });\n }\n }, { capture: true }).stop;\n var stopBeforeUnloadListener = addEventListener(configuration, window, \"beforeunload\" /* DOM_EVENT.BEFORE_UNLOAD */, function () {\n observable.notify({ reason: PageExitReason.UNLOADING });\n }).stop;\n return function () {\n stopListeners();\n stopBeforeUnloadListener();\n };\n });\n}\nexport function isPageExitReason(reason) {\n return includes(objectValues(PageExitReason), reason);\n}\n//# sourceMappingURL=pageExitObservable.js.map","import { monitor, noop, Observable, getZoneJsOriginalValue } from '@datadog/browser-core';\nexport function createDOMMutationObservable() {\n var MutationObserver = getMutationObserverConstructor();\n return new Observable(function (observable) {\n if (!MutationObserver) {\n return;\n }\n var observer = new MutationObserver(monitor(function () { return observable.notify(); }));\n observer.observe(document, {\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n });\n return function () { return observer.disconnect(); };\n });\n}\nexport function getMutationObserverConstructor() {\n var constructor;\n var browserWindow = window;\n // Angular uses Zone.js to provide a context persisting across async tasks. Zone.js replaces the\n // global MutationObserver constructor with a patched version to support the context propagation.\n // There is an ongoing issue[1][2] with this setup when using a MutationObserver within a Angular\n // component: on some occasions, the callback is being called in an infinite loop, causing the\n // page to freeze (even if the callback is completely empty).\n //\n // To work around this issue, we try to get the original MutationObserver constructor stored by\n // Zone.js.\n //\n // [1] https://github.com/angular/angular/issues/26948\n // [2] https://github.com/angular/angular/issues/31712\n if (browserWindow.Zone) {\n // Zone.js 0.8.6+ is storing original class constructors into the browser 'window' object[3].\n //\n // [3] https://github.com/angular/angular/blob/6375fa79875c0fe7b815efc45940a6e6f5c9c9eb/packages/zone.js/lib/common/utils.ts#L288\n constructor = getZoneJsOriginalValue(browserWindow, 'MutationObserver');\n if (browserWindow.MutationObserver && constructor === browserWindow.MutationObserver) {\n // Anterior Zone.js versions (used in Angular 2) does not expose the original MutationObserver\n // in the 'window' object. Luckily, the patched MutationObserver class is storing an original\n // instance in its properties[4]. Let's get the original MutationObserver constructor from\n // there.\n //\n // [4] https://github.com/angular/zone.js/blob/v0.8.5/lib/common/utils.ts#L412\n var patchedInstance = new browserWindow.MutationObserver(noop);\n var originalInstance = getZoneJsOriginalValue(patchedInstance, 'originalInstance');\n constructor = originalInstance && originalInstance.constructor;\n }\n }\n if (!constructor) {\n constructor = browserWindow.MutationObserver;\n }\n return constructor;\n}\n//# sourceMappingURL=domMutationObservable.js.map","import { addTelemetryDebug, elapsed, getPathName, includes, isValidUrl, toServerDuration, } from '@datadog/browser-core';\nexport var FAKE_INITIAL_DOCUMENT = 'initial_document';\nvar RESOURCE_TYPES = [\n [\"document\" /* ResourceType.DOCUMENT */, function (initiatorType) { return FAKE_INITIAL_DOCUMENT === initiatorType; }],\n [\"xhr\" /* ResourceType.XHR */, function (initiatorType) { return 'xmlhttprequest' === initiatorType; }],\n [\"fetch\" /* ResourceType.FETCH */, function (initiatorType) { return 'fetch' === initiatorType; }],\n [\"beacon\" /* ResourceType.BEACON */, function (initiatorType) { return 'beacon' === initiatorType; }],\n [\"css\" /* ResourceType.CSS */, function (_, path) { return /\\.css$/i.test(path); }],\n [\"js\" /* ResourceType.JS */, function (_, path) { return /\\.js$/i.test(path); }],\n [\n \"image\" /* ResourceType.IMAGE */,\n function (initiatorType, path) {\n return includes(['image', 'img', 'icon'], initiatorType) || /\\.(gif|jpg|jpeg|tiff|png|svg|ico)$/i.exec(path) !== null;\n },\n ],\n [\"font\" /* ResourceType.FONT */, function (_, path) { return /\\.(woff|eot|woff2|ttf)$/i.exec(path) !== null; }],\n [\n \"media\" /* ResourceType.MEDIA */,\n function (initiatorType, path) {\n return includes(['audio', 'video'], initiatorType) || /\\.(mp3|mp4)$/i.exec(path) !== null;\n },\n ],\n];\nexport function computeResourceEntryType(entry) {\n var url = entry.name;\n if (!isValidUrl(url)) {\n addTelemetryDebug(\"Failed to construct URL for \\\"\".concat(entry.name, \"\\\"\"));\n return \"other\" /* ResourceType.OTHER */;\n }\n var path = getPathName(url);\n for (var _i = 0, RESOURCE_TYPES_1 = RESOURCE_TYPES; _i < RESOURCE_TYPES_1.length; _i++) {\n var _a = RESOURCE_TYPES_1[_i], type = _a[0], isType = _a[1];\n if (isType(entry.initiatorType, path)) {\n return type;\n }\n }\n return \"other\" /* ResourceType.OTHER */;\n}\nfunction areInOrder() {\n var numbers = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n numbers[_i] = arguments[_i];\n }\n for (var i = 1; i < numbers.length; i += 1) {\n if (numbers[i - 1] > numbers[i]) {\n return false;\n }\n }\n return true;\n}\nexport function isResourceEntryRequestType(entry) {\n return entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch';\n}\nexport function computeResourceEntryDuration(entry) {\n var duration = entry.duration, startTime = entry.startTime, responseEnd = entry.responseEnd;\n // Safari duration is always 0 on timings blocked by cross origin policies.\n if (duration === 0 && startTime < responseEnd) {\n return toServerDuration(elapsed(startTime, responseEnd));\n }\n return toServerDuration(duration);\n}\nexport function computeResourceEntryDetails(entry) {\n if (!hasValidResourceEntryTimings(entry)) {\n return undefined;\n }\n var startTime = entry.startTime, fetchStart = entry.fetchStart, redirectStart = entry.redirectStart, redirectEnd = entry.redirectEnd, domainLookupStart = entry.domainLookupStart, domainLookupEnd = entry.domainLookupEnd, connectStart = entry.connectStart, secureConnectionStart = entry.secureConnectionStart, connectEnd = entry.connectEnd, requestStart = entry.requestStart, responseStart = entry.responseStart, responseEnd = entry.responseEnd;\n var details = {\n download: formatTiming(startTime, responseStart, responseEnd),\n first_byte: formatTiming(startTime, requestStart, responseStart),\n };\n // Make sure a connection occurred\n if (fetchStart < connectEnd) {\n details.connect = formatTiming(startTime, connectStart, connectEnd);\n // Make sure a secure connection occurred\n if (connectStart <= secureConnectionStart && secureConnectionStart <= connectEnd) {\n details.ssl = formatTiming(startTime, secureConnectionStart, connectEnd);\n }\n }\n // Make sure a domain lookup occurred\n if (fetchStart < domainLookupEnd) {\n details.dns = formatTiming(startTime, domainLookupStart, domainLookupEnd);\n }\n // Make sure a redirection occurred\n if (startTime < redirectEnd) {\n details.redirect = formatTiming(startTime, redirectStart, redirectEnd);\n }\n return details;\n}\n/**\n * Entries with negative duration are unexpected and should be dismissed. The intake will ignore RUM\n * Resource events with negative durations anyway.\n * Since Chromium 128, more entries have unexpected negative durations, see\n * https://issues.chromium.org/issues/363031537\n */\nexport function hasValidResourceEntryDuration(entry) {\n return entry.duration >= 0;\n}\nexport function hasValidResourceEntryTimings(entry) {\n // Ensure timings are in the right order. On top of filtering out potential invalid\n // RumPerformanceResourceTiming, it will ignore entries from requests where timings cannot be\n // collected, for example cross origin requests without a \"Timing-Allow-Origin\" header allowing\n // it.\n var areCommonTimingsInOrder = areInOrder(entry.startTime, entry.fetchStart, entry.domainLookupStart, entry.domainLookupEnd, entry.connectStart, entry.connectEnd, entry.requestStart, entry.responseStart, entry.responseEnd);\n var areRedirectionTimingsInOrder = hasRedirection(entry)\n ? areInOrder(entry.startTime, entry.redirectStart, entry.redirectEnd, entry.fetchStart)\n : true;\n return areCommonTimingsInOrder && areRedirectionTimingsInOrder;\n}\nfunction hasRedirection(entry) {\n return entry.redirectEnd > entry.startTime;\n}\nfunction formatTiming(origin, start, end) {\n if (origin <= start && start <= end) {\n return {\n duration: toServerDuration(elapsed(start, end)),\n start: toServerDuration(elapsed(origin, start)),\n };\n }\n}\nexport function computeResourceEntrySize(entry) {\n // Make sure a request actually occurred\n if (entry.startTime < entry.responseStart) {\n var encodedBodySize = entry.encodedBodySize, decodedBodySize = entry.decodedBodySize, transferSize = entry.transferSize;\n return {\n size: decodedBodySize,\n encoded_body_size: encodedBodySize,\n decoded_body_size: decodedBodySize,\n transfer_size: transferSize,\n };\n }\n return {\n size: undefined,\n encoded_body_size: undefined,\n decoded_body_size: undefined,\n transfer_size: undefined,\n };\n}\nexport function isAllowedRequestUrl(configuration, url) {\n return url && !configuration.isIntakeUrl(url);\n}\nvar DATA_URL_REGEX = /data:(.+)?(;base64)?,/g;\nexport var MAX_ATTRIBUTE_VALUE_CHAR_LENGTH = 24000;\nexport function isLongDataUrl(url) {\n if (url.length <= MAX_ATTRIBUTE_VALUE_CHAR_LENGTH) {\n return false;\n }\n else if (url.substring(0, 5) === 'data:') {\n // Avoid String.match RangeError: Maximum call stack size exceeded\n url = url.substring(0, MAX_ATTRIBUTE_VALUE_CHAR_LENGTH);\n return true;\n }\n return false;\n}\nexport function sanitizeDataUrl(url) {\n return \"\".concat(url.match(DATA_URL_REGEX)[0], \"[...]\");\n}\n//# sourceMappingURL=resourceUtils.js.map","import { addEventListener, Observable, setTimeout, clearTimeout, monitor, includes } from '@datadog/browser-core';\nimport { hasValidResourceEntryDuration, isAllowedRequestUrl } from '../domain/resource/resourceUtils';\n// We want to use a real enum (i.e. not a const enum) here, to be able to check whether an arbitrary\n// string is an expected performance entry\n// eslint-disable-next-line no-restricted-syntax\nexport var RumPerformanceEntryType;\n(function (RumPerformanceEntryType) {\n RumPerformanceEntryType[\"EVENT\"] = \"event\";\n RumPerformanceEntryType[\"FIRST_INPUT\"] = \"first-input\";\n RumPerformanceEntryType[\"LARGEST_CONTENTFUL_PAINT\"] = \"largest-contentful-paint\";\n RumPerformanceEntryType[\"LAYOUT_SHIFT\"] = \"layout-shift\";\n RumPerformanceEntryType[\"LONG_TASK\"] = \"longtask\";\n RumPerformanceEntryType[\"LONG_ANIMATION_FRAME\"] = \"long-animation-frame\";\n RumPerformanceEntryType[\"NAVIGATION\"] = \"navigation\";\n RumPerformanceEntryType[\"PAINT\"] = \"paint\";\n RumPerformanceEntryType[\"RESOURCE\"] = \"resource\";\n})(RumPerformanceEntryType || (RumPerformanceEntryType = {}));\nexport function createPerformanceObservable(configuration, options) {\n return new Observable(function (observable) {\n if (!window.PerformanceObserver) {\n return;\n }\n var handlePerformanceEntries = function (entries) {\n var rumPerformanceEntries = filterRumPerformanceEntries(configuration, entries);\n if (rumPerformanceEntries.length > 0) {\n observable.notify(rumPerformanceEntries);\n }\n };\n var timeoutId;\n var isObserverInitializing = true;\n var observer = new PerformanceObserver(monitor(function (entries) {\n // In Safari the performance observer callback is synchronous.\n // Because the buffered performance entry list can be quite large we delay the computation to prevent the SDK from blocking the main thread on init\n if (isObserverInitializing) {\n timeoutId = setTimeout(function () { return handlePerformanceEntries(entries.getEntries()); });\n }\n else {\n handlePerformanceEntries(entries.getEntries());\n }\n }));\n try {\n observer.observe(options);\n }\n catch (_a) {\n // Some old browser versions (<= chrome 74 ) don't support the PerformanceObserver type and buffered options\n // In these cases, fallback to getEntriesByType and PerformanceObserver with entryTypes\n // TODO: remove this fallback in the next major version\n var fallbackSupportedEntryTypes = [\n RumPerformanceEntryType.RESOURCE,\n RumPerformanceEntryType.NAVIGATION,\n RumPerformanceEntryType.LONG_TASK,\n RumPerformanceEntryType.PAINT,\n ];\n if (includes(fallbackSupportedEntryTypes, options.type)) {\n if (options.buffered) {\n timeoutId = setTimeout(function () { return handlePerformanceEntries(performance.getEntriesByType(options.type)); });\n }\n try {\n observer.observe({ entryTypes: [options.type] });\n }\n catch (_b) {\n // Old versions of Safari are throwing \"entryTypes contained only unsupported types\"\n // errors when observing only unsupported entry types.\n //\n // We could use `supportPerformanceTimingEvent` to make sure we don't invoke\n // `observer.observe` with an unsupported entry type, but Safari 11 and 12 don't support\n // `Performance.supportedEntryTypes`, so doing so would lose support for these versions\n // even if they do support the entry type.\n return;\n }\n }\n }\n isObserverInitializing = false;\n manageResourceTimingBufferFull(configuration);\n return function () {\n observer.disconnect();\n clearTimeout(timeoutId);\n };\n });\n}\nvar resourceTimingBufferFullListener;\nfunction manageResourceTimingBufferFull(configuration) {\n if (!resourceTimingBufferFullListener && supportPerformanceObject() && 'addEventListener' in performance) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1559377\n resourceTimingBufferFullListener = addEventListener(configuration, performance, 'resourcetimingbufferfull', function () {\n performance.clearResourceTimings();\n });\n }\n return function () {\n resourceTimingBufferFullListener === null || resourceTimingBufferFullListener === void 0 ? void 0 : resourceTimingBufferFullListener.stop();\n };\n}\nfunction supportPerformanceObject() {\n return window.performance !== undefined && 'getEntries' in performance;\n}\nexport function supportPerformanceTimingEvent(entryType) {\n return (window.PerformanceObserver &&\n PerformanceObserver.supportedEntryTypes !== undefined &&\n PerformanceObserver.supportedEntryTypes.includes(entryType));\n}\nfunction filterRumPerformanceEntries(configuration, entries) {\n return entries.filter(function (entry) { return !isForbiddenResource(configuration, entry); });\n}\nfunction isForbiddenResource(configuration, entry) {\n return (entry.entryType === RumPerformanceEntryType.RESOURCE &&\n (!isAllowedRequestUrl(configuration, entry.name) || !hasValidResourceEntryDuration(entry)));\n}\n//# sourceMappingURL=performanceObservable.js.map","import { dateNow, addEventListeners, monitor, setTimeout, relativeNow, addEventListener, objectHasValue, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType, supportPerformanceTimingEvent } from './performanceObservable';\nfunction supportPerformanceObject() {\n return window.performance !== undefined && 'getEntries' in performance;\n}\nexport function startPerformanceCollection(lifeCycle, configuration) {\n var cleanupTasks = [];\n if (supportPerformanceObject()) {\n var performanceEntries_1 = performance.getEntries();\n // Because the performance entry list can be quite large\n // delay the computation to prevent the SDK from blocking the main thread on init\n setTimeout(function () { return handleRumPerformanceEntries(lifeCycle, performanceEntries_1); });\n }\n if (window.PerformanceObserver) {\n var handlePerformanceEntryList_1 = monitor(function (entries) {\n return handleRumPerformanceEntries(lifeCycle, entries.getEntries());\n });\n var mainEntries = [RumPerformanceEntryType.PAINT];\n var experimentalEntries = [\n RumPerformanceEntryType.FIRST_INPUT,\n RumPerformanceEntryType.LAYOUT_SHIFT,\n RumPerformanceEntryType.EVENT,\n ];\n try {\n // Experimental entries are not retrieved by performance.getEntries()\n // use a single PerformanceObserver with buffered flag by type\n // to get values that could happen before SDK init\n experimentalEntries.forEach(function (type) {\n var observer = new window.PerformanceObserver(handlePerformanceEntryList_1);\n observer.observe({\n type: type,\n buffered: true,\n // durationThreshold only impact PerformanceEventTiming entries used for INP computation which requires a threshold at 40 (default is 104ms)\n // cf: https://github.com/GoogleChrome/web-vitals/blob/3806160ffbc93c3c4abf210a167b81228172b31c/src/onINP.ts#L209\n durationThreshold: 40,\n });\n cleanupTasks.push(function () { return observer.disconnect(); });\n });\n }\n catch (e) {\n // Some old browser versions (ex: chrome 67) don't support the PerformanceObserver type and buffered options\n // In these cases, fallback to PerformanceObserver with entryTypes\n mainEntries.push.apply(mainEntries, experimentalEntries);\n }\n var mainObserver_1 = new PerformanceObserver(handlePerformanceEntryList_1);\n try {\n mainObserver_1.observe({ entryTypes: mainEntries });\n cleanupTasks.push(function () { return mainObserver_1.disconnect(); });\n }\n catch (_a) {\n // Old versions of Safari are throwing \"entryTypes contained only unsupported types\"\n // errors when observing only unsupported entry types.\n //\n // We could use `supportPerformanceTimingEvent` to make sure we don't invoke\n // `observer.observe` with an unsupported entry type, but Safari 11 and 12 don't support\n // `Performance.supportedEntryTypes`, so doing so would lose support for these versions\n // even if they do support the entry type.\n }\n if (supportPerformanceObject() && 'addEventListener' in performance) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1559377\n var removePerformanceListener = addEventListener(configuration, performance, 'resourcetimingbufferfull', function () {\n performance.clearResourceTimings();\n }).stop;\n cleanupTasks.push(removePerformanceListener);\n }\n }\n if (!supportPerformanceTimingEvent(RumPerformanceEntryType.FIRST_INPUT)) {\n var stopFirstInputTiming = retrieveFirstInputTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, [timing]);\n }).stop;\n cleanupTasks.push(stopFirstInputTiming);\n }\n return {\n stop: function () {\n cleanupTasks.forEach(function (task) { return task(); });\n },\n };\n}\n/**\n * first-input timing entry polyfill based on\n * https://github.com/GoogleChrome/web-vitals/blob/master/src/lib/polyfills/firstInputPolyfill.ts\n */\nfunction retrieveFirstInputTiming(configuration, callback) {\n var startTimeStamp = dateNow();\n var timingSent = false;\n var removeEventListeners = addEventListeners(configuration, window, [\"click\" /* DOM_EVENT.CLICK */, \"mousedown\" /* DOM_EVENT.MOUSE_DOWN */, \"keydown\" /* DOM_EVENT.KEY_DOWN */, \"touchstart\" /* DOM_EVENT.TOUCH_START */, \"pointerdown\" /* DOM_EVENT.POINTER_DOWN */], function (evt) {\n // Only count cancelable events, which should trigger behavior important to the user.\n if (!evt.cancelable) {\n return;\n }\n // This timing will be used to compute the \"first Input delay\", which is the delta between\n // when the system received the event (e.g. evt.timeStamp) and when it could run the callback\n // (e.g. performance.now()).\n var timing = {\n entryType: RumPerformanceEntryType.FIRST_INPUT,\n processingStart: relativeNow(),\n processingEnd: relativeNow(),\n startTime: evt.timeStamp,\n duration: 0, // arbitrary value to avoid nullable duration and simplify INP logic\n name: '',\n };\n if (evt.type === \"pointerdown\" /* DOM_EVENT.POINTER_DOWN */) {\n sendTimingIfPointerIsNotCancelled(configuration, timing);\n }\n else {\n sendTiming(timing);\n }\n }, { passive: true, capture: true }).stop;\n return { stop: removeEventListeners };\n /**\n * Pointer events are a special case, because they can trigger main or compositor thread behavior.\n * We differentiate these cases based on whether or not we see a pointercancel event, which are\n * fired when we scroll. If we're scrolling we don't need to report input delay since FID excludes\n * scrolling and pinch/zooming.\n */\n function sendTimingIfPointerIsNotCancelled(configuration, timing) {\n addEventListeners(configuration, window, [\"pointerup\" /* DOM_EVENT.POINTER_UP */, \"pointercancel\" /* DOM_EVENT.POINTER_CANCEL */], function (event) {\n if (event.type === \"pointerup\" /* DOM_EVENT.POINTER_UP */) {\n sendTiming(timing);\n }\n }, { once: true });\n }\n function sendTiming(timing) {\n if (!timingSent) {\n timingSent = true;\n removeEventListeners();\n // In some cases the recorded delay is clearly wrong, e.g. it's negative or it's larger than\n // the time between now and when the page was loaded.\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/4\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/6\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/7\n var delay = timing.processingStart - timing.startTime;\n if (delay >= 0 && delay < dateNow() - startTimeStamp) {\n callback(timing);\n }\n }\n }\n}\nfunction handleRumPerformanceEntries(lifeCycle, entries) {\n var rumPerformanceEntries = entries.filter(function (entry) {\n return objectHasValue(RumPerformanceEntryType, entry.entryType);\n });\n if (rumPerformanceEntries.length) {\n lifeCycle.notify(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, rumPerformanceEntries);\n }\n}\n//# sourceMappingURL=performanceCollection.js.map","export var ErrorSource = {\n AGENT: 'agent',\n CONSOLE: 'console',\n CUSTOM: 'custom',\n LOGGER: 'logger',\n NETWORK: 'network',\n SOURCE: 'source',\n REPORT: 'report',\n};\n//# sourceMappingURL=error.types.js.map","import { setTimeout } from '../../tools/timer';\nimport { clocksNow, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { ErrorSource } from '../error/error.types';\nexport function createEventRateLimiter(eventType, limit, onLimitReached) {\n var eventCount = 0;\n var allowNextEvent = false;\n return {\n isLimitReached: function () {\n if (eventCount === 0) {\n setTimeout(function () {\n eventCount = 0;\n }, ONE_MINUTE);\n }\n eventCount += 1;\n if (eventCount <= limit || allowNextEvent) {\n allowNextEvent = false;\n return false;\n }\n if (eventCount === limit + 1) {\n allowNextEvent = true;\n try {\n onLimitReached({\n message: \"Reached max number of \".concat(eventType, \"s by minute: \").concat(limit),\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n }\n finally {\n allowNextEvent = false;\n }\n }\n return true;\n },\n };\n}\n//# sourceMappingURL=createEventRateLimiter.js.map","import { getSyntheticsResultId, getSyntheticsTestId, willSyntheticsInjectRum } from '@datadog/browser-core';\nexport function getSyntheticsContext() {\n var testId = getSyntheticsTestId();\n var resultId = getSyntheticsResultId();\n if (testId && resultId) {\n return {\n test_id: testId,\n result_id: resultId,\n injected: willSyntheticsInjectRum(),\n };\n }\n}\n//# sourceMappingURL=syntheticsContext.js.map","import { sanitize, deepClone, getType, objectEntries } from '@datadog/browser-core';\n/**\n * Current limitation:\n * - field path do not support array, 'a.b.c' only\n */\nexport function limitModification(object, modifiableFieldPaths, modifier) {\n var clone = deepClone(object);\n var result = modifier(clone);\n objectEntries(modifiableFieldPaths).forEach(function (_a) {\n var fieldPath = _a[0], fieldType = _a[1];\n var newValue = get(clone, fieldPath);\n var newType = getType(newValue);\n if (newType === fieldType) {\n set(object, fieldPath, sanitize(newValue));\n }\n else if (fieldType === 'object' && (newType === 'undefined' || newType === 'null')) {\n set(object, fieldPath, {});\n }\n });\n return result;\n}\nfunction get(object, path) {\n var current = object;\n for (var _i = 0, _a = path.split('.'); _i < _a.length; _i++) {\n var field = _a[_i];\n if (!isValidObjectContaining(current, field)) {\n return;\n }\n current = current[field];\n }\n return current;\n}\nfunction set(object, path, value) {\n var current = object;\n var fields = path.split('.');\n for (var i = 0; i < fields.length; i += 1) {\n var field = fields[i];\n if (!isValidObject(current)) {\n return;\n }\n if (i !== fields.length - 1) {\n current = current[field];\n }\n else {\n current[field] = value;\n }\n }\n}\nfunction isValidObject(object) {\n return getType(object) === 'object';\n}\nfunction isValidObjectContaining(object, field) {\n return isValidObject(object) && Object.prototype.hasOwnProperty.call(object, field);\n}\n//# sourceMappingURL=limitModification.js.map","import { combine, isEmptyObject, timeStampNow, currentDrift, display, createEventRateLimiter, canUseEventBridge, assign, round, isExperimentalFeatureEnabled, ExperimentalFeature, getConnectivity, } from '@datadog/browser-core';\nimport { getSyntheticsContext } from './contexts/syntheticsContext';\nimport { limitModification } from './limitModification';\nvar VIEW_MODIFIABLE_FIELD_PATHS = {\n 'view.name': 'string',\n 'view.url': 'string',\n 'view.referrer': 'string',\n};\nvar USER_CUSTOMIZABLE_FIELD_PATHS = {\n context: 'object',\n};\nvar ROOT_MODIFIABLE_FIELD_PATHS = {\n service: 'string',\n version: 'string',\n};\nvar modifiableFieldPathsByEvent;\nexport function startRumAssembly(configuration, lifeCycle, sessionManager, viewHistory, urlContexts, actionContexts, displayContext, ciVisibilityContext, getCommonContext, reportError) {\n var _a, _b;\n modifiableFieldPathsByEvent = (_a = {},\n _a[\"view\" /* RumEventType.VIEW */] = isExperimentalFeatureEnabled(ExperimentalFeature.VIEW_SPECIFIC_CONTEXT)\n ? assign({}, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS)\n : VIEW_MODIFIABLE_FIELD_PATHS,\n _a[\"error\" /* RumEventType.ERROR */] = assign({\n 'error.message': 'string',\n 'error.stack': 'string',\n 'error.resource.url': 'string',\n 'error.fingerprint': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS, ROOT_MODIFIABLE_FIELD_PATHS),\n _a[\"resource\" /* RumEventType.RESOURCE */] = assign({\n 'resource.url': 'string',\n }, isExperimentalFeatureEnabled(ExperimentalFeature.WRITABLE_RESOURCE_GRAPHQL)\n ? {\n 'resource.graphql': 'object',\n }\n : {}, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS, ROOT_MODIFIABLE_FIELD_PATHS),\n _a[\"action\" /* RumEventType.ACTION */] = assign({\n 'action.target.name': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS, ROOT_MODIFIABLE_FIELD_PATHS),\n _a[\"long_task\" /* RumEventType.LONG_TASK */] = assign({}, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a[\"vital\" /* RumEventType.VITAL */] = assign({}, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a);\n var eventRateLimiters = (_b = {},\n _b[\"error\" /* RumEventType.ERROR */] = createEventRateLimiter(\"error\" /* RumEventType.ERROR */, configuration.eventRateLimiterThreshold, reportError),\n _b[\"action\" /* RumEventType.ACTION */] = createEventRateLimiter(\"action\" /* RumEventType.ACTION */, configuration.eventRateLimiterThreshold, reportError),\n _b[\"vital\" /* RumEventType.VITAL */] = createEventRateLimiter(\"vital\" /* RumEventType.VITAL */, configuration.eventRateLimiterThreshold, reportError),\n _b);\n var syntheticsContext = getSyntheticsContext();\n lifeCycle.subscribe(12 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, function (_a) {\n var startTime = _a.startTime, rawRumEvent = _a.rawRumEvent, domainContext = _a.domainContext, savedCommonContext = _a.savedCommonContext, customerContext = _a.customerContext;\n var viewHistoryEntry = viewHistory.findView(startTime);\n var urlContext = urlContexts.findUrl(startTime);\n var session = sessionManager.findTrackedSession(startTime);\n if (session && viewHistoryEntry && urlContext) {\n var commonContext = savedCommonContext || getCommonContext();\n var actionId = actionContexts.findActionId(startTime);\n var rumContext = {\n _dd: {\n format_version: 2,\n drift: currentDrift(),\n configuration: {\n session_sample_rate: round(configuration.sessionSampleRate, 3),\n session_replay_sample_rate: round(configuration.sessionReplaySampleRate, 3),\n },\n browser_sdk_version: canUseEventBridge() ? \"5.27.0\" : undefined,\n },\n application: {\n id: configuration.applicationId,\n },\n date: timeStampNow(),\n service: viewHistoryEntry.service || configuration.service,\n version: viewHistoryEntry.version || configuration.version,\n source: 'browser',\n session: {\n id: session.id,\n type: syntheticsContext\n ? \"synthetics\" /* SessionType.SYNTHETICS */\n : ciVisibilityContext.get()\n ? \"ci_test\" /* SessionType.CI_TEST */\n : \"user\" /* SessionType.USER */,\n },\n view: {\n id: viewHistoryEntry.id,\n name: viewHistoryEntry.name,\n url: urlContext.url,\n referrer: urlContext.referrer,\n },\n action: needToAssembleWithAction(rawRumEvent) && actionId ? { id: actionId } : undefined,\n synthetics: syntheticsContext,\n ci_test: ciVisibilityContext.get(),\n display: displayContext.get(),\n connectivity: getConnectivity(),\n };\n var serverRumEvent = combine(rumContext, rawRumEvent);\n serverRumEvent.context = combine(commonContext.context, viewHistoryEntry.context, customerContext);\n if (!('has_replay' in serverRumEvent.session)) {\n ;\n serverRumEvent.session.has_replay = commonContext.hasReplay;\n }\n if (serverRumEvent.type === 'view') {\n ;\n serverRumEvent.session.sampled_for_replay =\n session.sessionReplay === 1 /* SessionReplayState.SAMPLED */;\n }\n if (!isEmptyObject(commonContext.user)) {\n ;\n serverRumEvent.usr = commonContext.user;\n }\n if (shouldSend(serverRumEvent, configuration.beforeSend, domainContext, eventRateLimiters)) {\n if (isEmptyObject(serverRumEvent.context)) {\n delete serverRumEvent.context;\n }\n lifeCycle.notify(13 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, serverRumEvent);\n }\n }\n });\n}\nfunction shouldSend(event, beforeSend, domainContext, eventRateLimiters) {\n var _a;\n if (beforeSend) {\n var result = limitModification(event, modifiableFieldPathsByEvent[event.type], function (event) {\n return beforeSend(event, domainContext);\n });\n if (result === false && event.type !== \"view\" /* RumEventType.VIEW */) {\n return false;\n }\n if (result === false) {\n display.warn(\"Can't dismiss view events using beforeSend!\");\n }\n }\n var rateLimitReached = (_a = eventRateLimiters[event.type]) === null || _a === void 0 ? void 0 : _a.isLimitReached();\n return !rateLimitReached;\n}\nfunction needToAssembleWithAction(event) {\n return [\"error\" /* RumEventType.ERROR */, \"resource\" /* RumEventType.RESOURCE */, \"long_task\" /* RumEventType.LONG_TASK */].indexOf(event.type) !== -1;\n}\n//# sourceMappingURL=assembly.js.map","// eslint-disable-next-line no-restricted-syntax\nvar AbstractLifeCycle = /** @class */ (function () {\n function AbstractLifeCycle() {\n this.callbacks = {};\n }\n AbstractLifeCycle.prototype.notify = function (eventType, data) {\n var eventCallbacks = this.callbacks[eventType];\n if (eventCallbacks) {\n eventCallbacks.forEach(function (callback) { return callback(data); });\n }\n };\n AbstractLifeCycle.prototype.subscribe = function (eventType, callback) {\n var _this = this;\n if (!this.callbacks[eventType]) {\n this.callbacks[eventType] = [];\n }\n this.callbacks[eventType].push(callback);\n return {\n unsubscribe: function () {\n _this.callbacks[eventType] = _this.callbacks[eventType].filter(function (other) { return callback !== other; });\n },\n };\n };\n return AbstractLifeCycle;\n}());\nexport { AbstractLifeCycle };\n//# sourceMappingURL=abstractLifeCycle.js.map","import { AbstractLifeCycle } from '@datadog/browser-core';\nexport var LifeCycle = (AbstractLifeCycle);\n//# sourceMappingURL=lifeCycle.js.map","import { setInterval, clearInterval } from './timer';\nimport { removeItem } from './utils/arrayUtils';\nimport { addDuration, relativeNow, ONE_MINUTE } from './utils/timeUtils';\nvar END_OF_TIMES = Infinity;\nexport var CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE;\nexport function createValueHistory(_a) {\n var expireDelay = _a.expireDelay, maxEntries = _a.maxEntries;\n var entries = [];\n var clearOldValuesInterval = setInterval(function () { return clearOldValues(); }, CLEAR_OLD_VALUES_INTERVAL);\n function clearOldValues() {\n var oldTimeThreshold = relativeNow() - expireDelay;\n while (entries.length > 0 && entries[entries.length - 1].endTime < oldTimeThreshold) {\n entries.pop();\n }\n }\n /**\n * Add a value to the history associated with a start time. Returns a reference to this newly\n * added entry that can be removed or closed.\n */\n function add(value, startTime) {\n var entry = {\n value: value,\n startTime: startTime,\n endTime: END_OF_TIMES,\n remove: function () {\n removeItem(entries, entry);\n },\n close: function (endTime) {\n entry.endTime = endTime;\n },\n };\n if (maxEntries && entries.length >= maxEntries) {\n entries.pop();\n }\n entries.unshift(entry);\n return entry;\n }\n /**\n * Return the latest value that was active during `startTime`, or the currently active value\n * if no `startTime` is provided. This method assumes that entries are not overlapping.\n *\n * If `option.returnInactive` is true, returns the value at `startTime` (active or not).\n */\n function find(startTime, options) {\n if (startTime === void 0) { startTime = END_OF_TIMES; }\n if (options === void 0) { options = { returnInactive: false }; }\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.startTime <= startTime) {\n if (options.returnInactive || startTime <= entry.endTime) {\n return entry.value;\n }\n break;\n }\n }\n }\n /**\n * Helper function to close the currently active value, if any. This method assumes that entries\n * are not overlapping.\n */\n function closeActive(endTime) {\n var latestEntry = entries[0];\n if (latestEntry && latestEntry.endTime === END_OF_TIMES) {\n latestEntry.close(endTime);\n }\n }\n /**\n * Return all values with an active period overlapping with the duration,\n * or all values that were active during `startTime` if no duration is provided,\n * or all currently active values if no `startTime` is provided.\n */\n function findAll(startTime, duration) {\n if (startTime === void 0) { startTime = END_OF_TIMES; }\n if (duration === void 0) { duration = 0; }\n var endTime = addDuration(startTime, duration);\n return entries\n .filter(function (entry) { return entry.startTime <= endTime && startTime <= entry.endTime; })\n .map(function (entry) { return entry.value; });\n }\n /**\n * Remove all entries from this collection.\n */\n function reset() {\n entries = [];\n }\n /**\n * Stop internal garbage collection of past entries.\n */\n function stop() {\n clearInterval(clearOldValuesInterval);\n }\n return { add: add, find: find, closeActive: closeActive, findAll: findAll, reset: reset, stop: stop };\n}\n//# sourceMappingURL=valueHistory.js.map","import { SESSION_TIME_OUT_DELAY, createValueHistory } from '@datadog/browser-core';\nexport var VIEW_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startViewHistory(lifeCycle) {\n var viewValueHistory = createValueHistory({ expireDelay: VIEW_CONTEXT_TIME_OUT_DELAY });\n lifeCycle.subscribe(2 /* LifeCycleEventType.BEFORE_VIEW_CREATED */, function (view) {\n viewValueHistory.add(buildViewHistoryEntry(view), view.startClocks.relative);\n });\n lifeCycle.subscribe(6 /* LifeCycleEventType.AFTER_VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n viewValueHistory.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_UPDATED */, function (viewUpdate) {\n var currentView = viewValueHistory.find(viewUpdate.startClocks.relative);\n if (currentView && viewUpdate.name) {\n currentView.name = viewUpdate.name;\n }\n if (currentView && viewUpdate.context) {\n currentView.context = viewUpdate.context;\n }\n });\n lifeCycle.subscribe(10 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n viewValueHistory.reset();\n });\n function buildViewHistoryEntry(view) {\n return {\n service: view.service,\n version: view.version,\n context: view.context,\n id: view.id,\n name: view.name,\n startClocks: view.startClocks,\n };\n }\n return {\n findView: function (startTime) { return viewValueHistory.find(startTime); },\n stop: function () {\n viewValueHistory.stop();\n },\n };\n}\n//# sourceMappingURL=viewHistory.js.map","import { instrumentMethod } from '../tools/instrumentMethod';\nimport { Observable } from '../tools/observable';\nimport { elapsed, clocksNow, timeStampNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nimport { shallowClone } from '../tools/utils/objectUtils';\nimport { addEventListener } from './addEventListener';\nvar xhrObservable;\nvar xhrContexts = new WeakMap();\nexport function initXhrObservable(configuration) {\n if (!xhrObservable) {\n xhrObservable = createXhrObservable(configuration);\n }\n return xhrObservable;\n}\nfunction createXhrObservable(configuration) {\n return new Observable(function (observable) {\n var stopInstrumentingStart = instrumentMethod(XMLHttpRequest.prototype, 'open', openXhr).stop;\n var stopInstrumentingSend = instrumentMethod(XMLHttpRequest.prototype, 'send', function (call) {\n sendXhr(call, configuration, observable);\n }, { computeHandlingStack: true }).stop;\n var stopInstrumentingAbort = instrumentMethod(XMLHttpRequest.prototype, 'abort', abortXhr).stop;\n return function () {\n stopInstrumentingStart();\n stopInstrumentingSend();\n stopInstrumentingAbort();\n };\n });\n}\nfunction openXhr(_a) {\n var xhr = _a.target, _b = _a.parameters, method = _b[0], url = _b[1];\n xhrContexts.set(xhr, {\n state: 'open',\n method: String(method).toUpperCase(),\n url: normalizeUrl(String(url)),\n });\n}\nfunction sendXhr(_a, configuration, observable) {\n var xhr = _a.target, handlingStack = _a.handlingStack;\n var context = xhrContexts.get(xhr);\n if (!context) {\n return;\n }\n var startContext = context;\n startContext.state = 'start';\n startContext.startClocks = clocksNow();\n startContext.isAborted = false;\n startContext.xhr = xhr;\n startContext.handlingStack = handlingStack;\n var hasBeenReported = false;\n var stopInstrumentingOnReadyStateChange = instrumentMethod(xhr, 'onreadystatechange', function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n // Try to report the XHR as soon as possible, because the XHR may be mutated by the\n // application during a future event. For example, Angular is calling .abort() on\n // completed requests during an onreadystatechange event, so the status becomes '0'\n // before the request is collected.\n onEnd();\n }\n }).stop;\n var onEnd = function () {\n unsubscribeLoadEndListener();\n stopInstrumentingOnReadyStateChange();\n if (hasBeenReported) {\n return;\n }\n hasBeenReported = true;\n var completeContext = context;\n completeContext.state = 'complete';\n completeContext.duration = elapsed(startContext.startClocks.timeStamp, timeStampNow());\n completeContext.status = xhr.status;\n observable.notify(shallowClone(completeContext));\n };\n var unsubscribeLoadEndListener = addEventListener(configuration, xhr, 'loadend', onEnd).stop;\n observable.notify(startContext);\n}\nfunction abortXhr(_a) {\n var xhr = _a.target;\n var context = xhrContexts.get(xhr);\n if (context) {\n context.isAborted = true;\n }\n}\n//# sourceMappingURL=xhrObservable.js.map","import { initFetchObservable, initXhrObservable, readBytesFromStream, elapsed, timeStampNow, tryToClone, } from '@datadog/browser-core';\nimport { isAllowedRequestUrl } from './resource/resourceUtils';\nimport { startTracer } from './tracing/tracer';\nvar nextRequestIndex = 1;\nexport function startRequestCollection(lifeCycle, configuration, sessionManager) {\n var tracer = startTracer(configuration, sessionManager);\n trackXhr(lifeCycle, configuration, tracer);\n trackFetch(lifeCycle, configuration, tracer);\n}\nexport function trackXhr(lifeCycle, configuration, tracer) {\n var subscription = initXhrObservable(configuration).subscribe(function (rawContext) {\n var context = rawContext;\n if (!isAllowedRequestUrl(configuration, context.url)) {\n return;\n }\n switch (context.state) {\n case 'start':\n tracer.traceXhr(context, context.xhr);\n context.requestIndex = getNextRequestIndex();\n lifeCycle.notify(7 /* LifeCycleEventType.REQUEST_STARTED */, {\n requestIndex: context.requestIndex,\n url: context.url,\n });\n break;\n case 'complete':\n tracer.clearTracingIfNeeded(context);\n lifeCycle.notify(8 /* LifeCycleEventType.REQUEST_COMPLETED */, {\n duration: context.duration,\n method: context.method,\n requestIndex: context.requestIndex,\n spanId: context.spanId,\n startClocks: context.startClocks,\n status: context.status,\n traceId: context.traceId,\n traceSampled: context.traceSampled,\n type: \"xhr\" /* RequestType.XHR */,\n url: context.url,\n xhr: context.xhr,\n isAborted: context.isAborted,\n handlingStack: context.handlingStack,\n });\n break;\n }\n });\n return { stop: function () { return subscription.unsubscribe(); } };\n}\nexport function trackFetch(lifeCycle, configuration, tracer) {\n var subscription = initFetchObservable().subscribe(function (rawContext) {\n var context = rawContext;\n if (!isAllowedRequestUrl(configuration, context.url)) {\n return;\n }\n switch (context.state) {\n case 'start':\n tracer.traceFetch(context);\n context.requestIndex = getNextRequestIndex();\n lifeCycle.notify(7 /* LifeCycleEventType.REQUEST_STARTED */, {\n requestIndex: context.requestIndex,\n url: context.url,\n });\n break;\n case 'resolve':\n waitForResponseToComplete(context, function (duration) {\n tracer.clearTracingIfNeeded(context);\n lifeCycle.notify(8 /* LifeCycleEventType.REQUEST_COMPLETED */, {\n duration: duration,\n method: context.method,\n requestIndex: context.requestIndex,\n responseType: context.responseType,\n spanId: context.spanId,\n startClocks: context.startClocks,\n status: context.status,\n traceId: context.traceId,\n traceSampled: context.traceSampled,\n type: \"fetch\" /* RequestType.FETCH */,\n url: context.url,\n response: context.response,\n init: context.init,\n input: context.input,\n isAborted: context.isAborted,\n handlingStack: context.handlingStack,\n });\n });\n break;\n }\n });\n return { stop: function () { return subscription.unsubscribe(); } };\n}\nfunction getNextRequestIndex() {\n var result = nextRequestIndex;\n nextRequestIndex += 1;\n return result;\n}\nfunction waitForResponseToComplete(context, callback) {\n var clonedResponse = context.response && tryToClone(context.response);\n if (!clonedResponse || !clonedResponse.body) {\n // do not try to wait for the response if the clone failed, fetch error or null body\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()));\n }\n else {\n readBytesFromStream(clonedResponse.body, function () {\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()));\n }, {\n bytesLimit: Number.POSITIVE_INFINITY,\n collectStreamBody: false,\n });\n }\n}\n//# sourceMappingURL=requestCollection.js.map","export function isServerError(status) {\n return status >= 500;\n}\nexport function tryToClone(response) {\n try {\n return response.clone();\n }\n catch (e) {\n // clone can throw if the response has already been used by another instrumentation or is disturbed\n return;\n }\n}\n//# sourceMappingURL=responseUtils.js.map","import { monitor } from './monitor';\nimport { noop } from './utils/functionUtils';\n/**\n * Read bytes from a ReadableStream until at least `limit` bytes have been read (or until the end of\n * the stream). The callback is invoked with the at most `limit` bytes, and indicates that the limit\n * has been exceeded if more bytes were available.\n */\nexport function readBytesFromStream(stream, callback, options) {\n var reader = stream.getReader();\n var chunks = [];\n var readBytesCount = 0;\n readMore();\n function readMore() {\n reader.read().then(monitor(function (result) {\n if (result.done) {\n onDone();\n return;\n }\n if (options.collectStreamBody) {\n chunks.push(result.value);\n }\n readBytesCount += result.value.length;\n if (readBytesCount > options.bytesLimit) {\n onDone();\n }\n else {\n readMore();\n }\n }), monitor(function (error) { return callback(error); }));\n }\n function onDone() {\n reader.cancel().catch(\n // we don't care if cancel fails, but we still need to catch the error to avoid reporting it\n // as an unhandled rejection\n noop);\n var bytes;\n var limitExceeded;\n if (options.collectStreamBody) {\n var completeBuffer_1;\n if (chunks.length === 1) {\n // optimization: if the response is small enough to fit in a single buffer (provided by the browser), just\n // use it directly.\n completeBuffer_1 = chunks[0];\n }\n else {\n // else, we need to copy buffers into a larger buffer to concatenate them.\n completeBuffer_1 = new Uint8Array(readBytesCount);\n var offset_1 = 0;\n chunks.forEach(function (chunk) {\n completeBuffer_1.set(chunk, offset_1);\n offset_1 += chunk.length;\n });\n }\n bytes = completeBuffer_1.slice(0, options.bytesLimit);\n limitExceeded = completeBuffer_1.length > options.bytesLimit;\n }\n callback(undefined, bytes, limitExceeded);\n }\n}\n//# sourceMappingURL=readBytesFromStream.js.map","import { isNumber } from '@datadog/browser-core';\nexport function discardNegativeDuration(duration) {\n return isNumber(duration) && duration < 0 ? undefined : duration;\n}\n//# sourceMappingURL=discardNegativeDuration.js.map","import { noop } from '@datadog/browser-core';\nexport function trackEventCounts(_a) {\n var lifeCycle = _a.lifeCycle, isChildEvent = _a.isChildEvent, _b = _a.onChange, callback = _b === void 0 ? noop : _b;\n var eventCounts = {\n errorCount: 0,\n longTaskCount: 0,\n resourceCount: 0,\n actionCount: 0,\n frustrationCount: 0,\n };\n var subscription = lifeCycle.subscribe(13 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) {\n var _a;\n if (event.type === 'view' || event.type === 'vital' || !isChildEvent(event)) {\n return;\n }\n switch (event.type) {\n case \"error\" /* RumEventType.ERROR */:\n eventCounts.errorCount += 1;\n callback();\n break;\n case \"action\" /* RumEventType.ACTION */:\n eventCounts.actionCount += 1;\n if (event.action.frustration) {\n eventCounts.frustrationCount += event.action.frustration.type.length;\n }\n callback();\n break;\n case \"long_task\" /* RumEventType.LONG_TASK */:\n eventCounts.longTaskCount += 1;\n callback();\n break;\n case \"resource\" /* RumEventType.RESOURCE */:\n if (!((_a = event._dd) === null || _a === void 0 ? void 0 : _a.discarded)) {\n eventCounts.resourceCount += 1;\n callback();\n }\n break;\n }\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n eventCounts: eventCounts,\n };\n}\n//# sourceMappingURL=trackEventCounts.js.map","import { instrumentMethod, matchList, monitor, Observable, timeStampNow, setTimeout, clearTimeout, } from '@datadog/browser-core';\nimport { createPerformanceObservable, RumPerformanceEntryType } from '../browser/performanceObservable';\n// Delay to wait for a page activity to validate the tracking process\nexport var PAGE_ACTIVITY_VALIDATION_DELAY = 100;\n// Delay to wait after a page activity to end the tracking process\nexport var PAGE_ACTIVITY_END_DELAY = 100;\n/**\n * Wait for the page activity end\n *\n * Detection lifecycle:\n * ```\n * Wait page activity end\n * .-------------------'--------------------.\n * v v\n * [Wait for a page activity ] [Wait for a maximum duration]\n * [timeout: VALIDATION_DELAY] [ timeout: maxDuration ]\n * / \\ |\n * v v |\n * [No page activity] [Page activity] |\n * | |,----------------------. |\n * v v | |\n * (Discard) [Wait for a page activity] | |\n * [ timeout: END_DELAY ] | |\n * / \\ | |\n * v v | |\n * [No page activity] [Page activity] | |\n * | | | |\n * | '------------' |\n * '-----------. ,--------------------'\n * v\n * (End)\n * ```\n *\n * Note: by assuming that maxDuration is greater than VALIDATION_DELAY, we are sure that if the\n * process is still alive after maxDuration, it has been validated.\n */\nexport function waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, pageActivityEndCallback, maxDuration) {\n var pageActivityObservable = createPageActivityObservable(lifeCycle, domMutationObservable, configuration);\n return doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration);\n}\nexport function doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration) {\n var pageActivityEndTimeoutId;\n var hasCompleted = false;\n var validationTimeoutId = setTimeout(monitor(function () { return complete({ hadActivity: false }); }), PAGE_ACTIVITY_VALIDATION_DELAY);\n var maxDurationTimeoutId = maxDuration !== undefined\n ? setTimeout(monitor(function () { return complete({ hadActivity: true, end: timeStampNow() }); }), maxDuration)\n : undefined;\n var pageActivitySubscription = pageActivityObservable.subscribe(function (_a) {\n var isBusy = _a.isBusy;\n clearTimeout(validationTimeoutId);\n clearTimeout(pageActivityEndTimeoutId);\n var lastChangeTime = timeStampNow();\n if (!isBusy) {\n pageActivityEndTimeoutId = setTimeout(monitor(function () { return complete({ hadActivity: true, end: lastChangeTime }); }), PAGE_ACTIVITY_END_DELAY);\n }\n });\n var stop = function () {\n hasCompleted = true;\n clearTimeout(validationTimeoutId);\n clearTimeout(pageActivityEndTimeoutId);\n clearTimeout(maxDurationTimeoutId);\n pageActivitySubscription.unsubscribe();\n };\n function complete(event) {\n if (hasCompleted) {\n return;\n }\n stop();\n pageActivityEndCallback(event);\n }\n return { stop: stop };\n}\nexport function createPageActivityObservable(lifeCycle, domMutationObservable, configuration) {\n return new Observable(function (observable) {\n var subscriptions = [];\n var firstRequestIndex;\n var pendingRequestsCount = 0;\n subscriptions.push(domMutationObservable.subscribe(notifyPageActivity), createPerformanceObservable(configuration, { type: RumPerformanceEntryType.RESOURCE }).subscribe(function (entries) {\n if (entries.some(function (entry) { return !isExcludedUrl(configuration, entry.name); })) {\n notifyPageActivity();\n }\n }), lifeCycle.subscribe(7 /* LifeCycleEventType.REQUEST_STARTED */, function (startEvent) {\n if (isExcludedUrl(configuration, startEvent.url)) {\n return;\n }\n if (firstRequestIndex === undefined) {\n firstRequestIndex = startEvent.requestIndex;\n }\n pendingRequestsCount += 1;\n notifyPageActivity();\n }), lifeCycle.subscribe(8 /* LifeCycleEventType.REQUEST_COMPLETED */, function (request) {\n if (isExcludedUrl(configuration, request.url) ||\n firstRequestIndex === undefined ||\n // If the request started before the tracking start, ignore it\n request.requestIndex < firstRequestIndex) {\n return;\n }\n pendingRequestsCount -= 1;\n notifyPageActivity();\n }));\n var stopTrackingWindowOpen = trackWindowOpen(notifyPageActivity).stop;\n return function () {\n stopTrackingWindowOpen();\n subscriptions.forEach(function (s) { return s.unsubscribe(); });\n };\n function notifyPageActivity() {\n observable.notify({ isBusy: pendingRequestsCount > 0 });\n }\n });\n}\nfunction isExcludedUrl(configuration, requestUrl) {\n return matchList(configuration.excludedActivityUrls, requestUrl);\n}\nfunction trackWindowOpen(callback) {\n return instrumentMethod(window, 'open', callback);\n}\n//# sourceMappingURL=waitPageActivityEnd.js.map","// https://github.com/jquery/jquery/blob/a684e6ba836f7c553968d7d026ed7941e1a612d8/src/selector/escapeSelector.js\nexport function cssEscape(str) {\n if (window.CSS && window.CSS.escape) {\n return window.CSS.escape(str);\n }\n // eslint-disable-next-line no-control-regex\n return str.replace(/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g, function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === '\\0') {\n return '\\uFFFD';\n }\n // Control characters and (dependent upon position) numbers get escaped as code points\n return \"\".concat(ch.slice(0, -1), \"\\\\\").concat(ch.charCodeAt(ch.length - 1).toString(16), \" \");\n }\n // Other potentially-special ASCII characters get backslash-escaped\n return \"\\\\\".concat(ch);\n });\n}\nexport function elementMatches(element, selector) {\n if (element.matches) {\n return element.matches(selector);\n }\n // IE11 support\n if (element.msMatchesSelector) {\n return element.msMatchesSelector(selector);\n }\n return false;\n}\n/**\n * Return the parentElement of an node\n *\n * In cases where parentElement is not supported, such as in IE11 for SVG nodes, we fallback to parentNode\n */\nexport function getParentElement(node) {\n if (node.parentElement) {\n return node.parentElement;\n }\n while (node.parentNode) {\n if (node.parentNode.nodeType === Node.ELEMENT_NODE) {\n return node.parentNode;\n }\n node = node.parentNode;\n }\n return null;\n}\n/**\n * Return the classList of an element or an array of classes if classList is not supported\n *\n * In cases where classList is not supported, such as in IE11 for SVG and MathML elements,\n * we fallback to using element.getAttribute('class').\n * We opt for element.getAttribute('class') over element.className because className returns an SVGAnimatedString for SVG elements.\n */\nexport function getClassList(element) {\n if (element.classList) {\n return element.classList;\n }\n var classes = (element.getAttribute('class') || '').trim();\n return classes ? classes.split(/\\s+/) : [];\n}\n// ie11 supports WeakMap but not WeakSet\nvar PLACEHOLDER = 1;\n// eslint-disable-next-line no-restricted-syntax\nvar WeakSet = /** @class */ (function () {\n function WeakSet(initialValues) {\n var _this = this;\n this.map = new WeakMap();\n if (initialValues) {\n initialValues.forEach(function (value) { return _this.map.set(value, PLACEHOLDER); });\n }\n }\n WeakSet.prototype.add = function (value) {\n this.map.set(value, PLACEHOLDER);\n return this;\n };\n WeakSet.prototype.delete = function (value) {\n return this.map.delete(value);\n };\n WeakSet.prototype.has = function (value) {\n return this.map.has(value);\n };\n return WeakSet;\n}());\nexport { WeakSet };\n//# sourceMappingURL=polyfills.js.map","export function isTextNode(node) {\n return node.nodeType === Node.TEXT_NODE;\n}\nexport function isCommentNode(node) {\n return node.nodeType === Node.COMMENT_NODE;\n}\nexport function isElementNode(node) {\n return node.nodeType === Node.ELEMENT_NODE;\n}\nexport function isNodeShadowHost(node) {\n return isElementNode(node) && Boolean(node.shadowRoot);\n}\nexport function isNodeShadowRoot(node) {\n var shadowRoot = node;\n return !!shadowRoot.host && shadowRoot.nodeType === Node.DOCUMENT_FRAGMENT_NODE && isElementNode(shadowRoot.host);\n}\nexport function hasChildNodes(node) {\n return node.childNodes.length > 0 || isNodeShadowHost(node);\n}\nexport function forEachChildNodes(node, callback) {\n var child = node.firstChild;\n while (child) {\n callback(child);\n child = child.nextSibling;\n }\n if (isNodeShadowHost(node)) {\n callback(node.shadowRoot);\n }\n}\n/**\n * Return `host` in case if the current node is a shadow root otherwise will return the `parentNode`\n */\nexport function getParentNode(node) {\n return isNodeShadowRoot(node) ? node.host : node.parentNode;\n}\n//# sourceMappingURL=htmlDomUtils.js.map","import { DefaultPrivacyLevel } from '@datadog/browser-core';\nimport { isElementNode, getParentNode, isTextNode } from '../browser/htmlDomUtils';\nimport { elementMatches } from '../browser/polyfills';\nexport var NodePrivacyLevel = {\n IGNORE: 'ignore',\n HIDDEN: 'hidden',\n ALLOW: DefaultPrivacyLevel.ALLOW,\n MASK: DefaultPrivacyLevel.MASK,\n MASK_USER_INPUT: DefaultPrivacyLevel.MASK_USER_INPUT,\n};\nexport var PRIVACY_ATTR_NAME = 'data-dd-privacy';\n// Privacy Attrs\nexport var PRIVACY_ATTR_VALUE_ALLOW = 'allow';\nexport var PRIVACY_ATTR_VALUE_MASK = 'mask';\nexport var PRIVACY_ATTR_VALUE_MASK_USER_INPUT = 'mask-user-input';\nexport var PRIVACY_ATTR_VALUE_HIDDEN = 'hidden';\n// Privacy Classes - not all customers can set plain HTML attributes, so support classes too\nexport var PRIVACY_CLASS_PREFIX = 'dd-privacy-';\n// Private Replacement Templates\nexport var CENSORED_STRING_MARK = '***';\nexport var CENSORED_IMG_MARK = 'data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==';\nexport var FORM_PRIVATE_TAG_NAMES = {\n INPUT: true,\n OUTPUT: true,\n TEXTAREA: true,\n SELECT: true,\n OPTION: true,\n DATALIST: true,\n OPTGROUP: true,\n};\nvar TEXT_MASKING_CHAR = 'x';\n/**\n * Get node privacy level by iterating over its ancestors. When the direct parent privacy level is\n * know, it is best to use something like:\n *\n * derivePrivacyLevelGivenParent(getNodeSelfPrivacyLevel(node), parentNodePrivacyLevel)\n */\nexport function getNodePrivacyLevel(node, defaultPrivacyLevel, cache) {\n if (cache && cache.has(node)) {\n return cache.get(node);\n }\n var parentNode = getParentNode(node);\n var parentNodePrivacyLevel = parentNode\n ? getNodePrivacyLevel(parentNode, defaultPrivacyLevel, cache)\n : defaultPrivacyLevel;\n var selfNodePrivacyLevel = getNodeSelfPrivacyLevel(node);\n var nodePrivacyLevel = reducePrivacyLevel(selfNodePrivacyLevel, parentNodePrivacyLevel);\n if (cache) {\n cache.set(node, nodePrivacyLevel);\n }\n return nodePrivacyLevel;\n}\n/**\n * Reduces the next privacy level based on self + parent privacy levels\n */\nexport function reducePrivacyLevel(childPrivacyLevel, parentNodePrivacyLevel) {\n switch (parentNodePrivacyLevel) {\n // These values cannot be overridden\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return parentNodePrivacyLevel;\n }\n switch (childPrivacyLevel) {\n case NodePrivacyLevel.ALLOW:\n case NodePrivacyLevel.MASK:\n case NodePrivacyLevel.MASK_USER_INPUT:\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return childPrivacyLevel;\n default:\n return parentNodePrivacyLevel;\n }\n}\n/**\n * Determines the node's own privacy level without checking for ancestors.\n */\nexport function getNodeSelfPrivacyLevel(node) {\n // Only Element types can have a privacy level set\n if (!isElementNode(node)) {\n return;\n }\n // Overrules for replay purpose\n if (node.tagName === 'BASE') {\n return NodePrivacyLevel.ALLOW;\n }\n // Overrules to enforce end-user protection\n if (node.tagName === 'INPUT') {\n var inputElement = node;\n if (inputElement.type === 'password' || inputElement.type === 'email' || inputElement.type === 'tel') {\n return NodePrivacyLevel.MASK;\n }\n if (inputElement.type === 'hidden') {\n return NodePrivacyLevel.MASK;\n }\n var autocomplete = inputElement.getAttribute('autocomplete');\n // Handle input[autocomplete=cc-number/cc-csc/cc-exp/cc-exp-month/cc-exp-year]\n if (autocomplete && autocomplete.indexOf('cc-') === 0) {\n return NodePrivacyLevel.MASK;\n }\n }\n // Check HTML privacy attributes and classes\n if (elementMatches(node, getPrivacySelector(NodePrivacyLevel.HIDDEN))) {\n return NodePrivacyLevel.HIDDEN;\n }\n if (elementMatches(node, getPrivacySelector(NodePrivacyLevel.MASK))) {\n return NodePrivacyLevel.MASK;\n }\n if (elementMatches(node, getPrivacySelector(NodePrivacyLevel.MASK_USER_INPUT))) {\n return NodePrivacyLevel.MASK_USER_INPUT;\n }\n if (elementMatches(node, getPrivacySelector(NodePrivacyLevel.ALLOW))) {\n return NodePrivacyLevel.ALLOW;\n }\n if (shouldIgnoreElement(node)) {\n return NodePrivacyLevel.IGNORE;\n }\n}\n/**\n * Helper aiming to unify `mask` and `mask-user-input` privacy levels:\n *\n * In the `mask` case, it is trivial: we should mask the element.\n *\n * In the `mask-user-input` case, we should mask the element only if it is a \"form\" element or the\n * direct parent is a form element for text nodes).\n *\n * Other `shouldMaskNode` cases are edge cases that should not matter too much (ex: should we mask a\n * node if it is ignored or hidden? it doesn't matter since it won't be serialized).\n */\nexport function shouldMaskNode(node, privacyLevel) {\n switch (privacyLevel) {\n case NodePrivacyLevel.MASK:\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return true;\n case NodePrivacyLevel.MASK_USER_INPUT:\n return isTextNode(node) ? isFormElement(node.parentNode) : isFormElement(node);\n default:\n return false;\n }\n}\nfunction isFormElement(node) {\n if (!node || node.nodeType !== node.ELEMENT_NODE) {\n return false;\n }\n var element = node;\n if (element.tagName === 'INPUT') {\n switch (element.type) {\n case 'button':\n case 'color':\n case 'reset':\n case 'submit':\n return false;\n }\n }\n return !!FORM_PRIVATE_TAG_NAMES[element.tagName];\n}\n/**\n * Text censoring non-destructively maintains whitespace characters in order to preserve text shape\n * during replay.\n */\nexport var censorText = function (text) { return text.replace(/\\S/g, TEXT_MASKING_CHAR); };\nexport function getTextContent(textNode, ignoreWhiteSpace, parentNodePrivacyLevel) {\n var _a;\n // The parent node may not be a html element which has a tagName attribute.\n // So just let it be undefined which is ok in this use case.\n var parentTagName = (_a = textNode.parentElement) === null || _a === void 0 ? void 0 : _a.tagName;\n var textContent = textNode.textContent || '';\n if (ignoreWhiteSpace && !textContent.trim()) {\n return;\n }\n var nodePrivacyLevel = parentNodePrivacyLevel;\n var isScript = parentTagName === 'SCRIPT';\n if (isScript) {\n // For perf reasons, we don't record script (heuristic)\n textContent = CENSORED_STRING_MARK;\n }\n else if (nodePrivacyLevel === NodePrivacyLevel.HIDDEN) {\n // Should never occur, but just in case, we set to CENSORED_MARK.\n textContent = CENSORED_STRING_MARK;\n }\n else if (shouldMaskNode(textNode, nodePrivacyLevel)) {\n if (\n // Scrambling the child list breaks text nodes for DATALIST/SELECT/OPTGROUP\n parentTagName === 'DATALIST' ||\n parentTagName === 'SELECT' ||\n parentTagName === 'OPTGROUP') {\n if (!textContent.trim()) {\n return;\n }\n }\n else if (parentTagName === 'OPTION') {\n //
\n \n);\n\nexport default TrustpilotCarousel;\n","const defaultOptions = {\n active: true,\n breakpoints: {},\n delay: 4000,\n jump: false,\n playOnInit: true,\n stopOnFocusIn: true,\n stopOnInteraction: true,\n stopOnMouseEnter: false,\n stopOnLastSnap: false,\n rootNode: null\n};\n\nfunction Autoplay(userOptions = {}) {\n let options;\n let emblaApi;\n let destroyed;\n let playing = false;\n let resume = true;\n let jump = false;\n let timer = 0;\n function init(emblaApiInstance, optionsHandler) {\n emblaApi = emblaApiInstance;\n const {\n mergeOptions,\n optionsAtMedia\n } = optionsHandler;\n const optionsBase = mergeOptions(defaultOptions, Autoplay.globalOptions);\n const allOptions = mergeOptions(optionsBase, userOptions);\n options = optionsAtMedia(allOptions);\n if (emblaApi.scrollSnapList().length <= 1) return;\n jump = options.jump;\n destroyed = false;\n const {\n eventStore,\n ownerDocument\n } = emblaApi.internalEngine();\n const emblaRoot = emblaApi.rootNode();\n const root = options.rootNode && options.rootNode(emblaRoot) || emblaRoot;\n const container = emblaApi.containerNode();\n emblaApi.on('pointerDown', stopTimer);\n if (!options.stopOnInteraction) {\n emblaApi.on('pointerUp', startTimer);\n }\n if (options.stopOnMouseEnter) {\n eventStore.add(root, 'mouseenter', () => {\n resume = false;\n stopTimer();\n });\n if (!options.stopOnInteraction) {\n eventStore.add(root, 'mouseleave', () => {\n resume = true;\n startTimer();\n });\n }\n }\n if (options.stopOnFocusIn) {\n emblaApi.on('slideFocusStart', stopTimer);\n if (!options.stopOnInteraction) {\n eventStore.add(container, 'focusout', startTimer);\n }\n }\n eventStore.add(ownerDocument, 'visibilitychange', visibilityChange);\n if (options.playOnInit && !documentIsHidden()) startTimer();\n }\n function destroy() {\n emblaApi.off('pointerDown', stopTimer).off('pointerUp', startTimer).off('slideFocusStart', stopTimer);\n stopTimer();\n destroyed = true;\n playing = false;\n }\n function startTimer() {\n if (destroyed) return;\n if (!resume) return;\n if (!playing) emblaApi.emit('autoplay:play');\n const {\n ownerWindow\n } = emblaApi.internalEngine();\n ownerWindow.clearInterval(timer);\n timer = ownerWindow.setInterval(next, options.delay);\n playing = true;\n }\n function stopTimer() {\n if (destroyed) return;\n if (playing) emblaApi.emit('autoplay:stop');\n const {\n ownerWindow\n } = emblaApi.internalEngine();\n ownerWindow.clearInterval(timer);\n timer = 0;\n playing = false;\n }\n function visibilityChange() {\n if (documentIsHidden()) {\n resume = playing;\n return stopTimer();\n }\n if (resume) startTimer();\n }\n function documentIsHidden() {\n const {\n ownerDocument\n } = emblaApi.internalEngine();\n return ownerDocument.visibilityState === 'hidden';\n }\n function play(jumpOverride) {\n if (typeof jumpOverride !== 'undefined') jump = jumpOverride;\n resume = true;\n startTimer();\n }\n function stop() {\n if (playing) stopTimer();\n }\n function reset() {\n if (playing) play();\n }\n function isPlaying() {\n return playing;\n }\n function next() {\n const {\n index\n } = emblaApi.internalEngine();\n const nextIndex = index.clone().add(1).get();\n const lastIndex = emblaApi.scrollSnapList().length - 1;\n const kill = options.stopOnLastSnap && nextIndex === lastIndex;\n if (kill) stopTimer();\n if (emblaApi.canScrollNext()) {\n emblaApi.scrollNext(jump);\n } else {\n emblaApi.scrollTo(0, jump);\n }\n }\n const self = {\n name: 'autoplay',\n options: userOptions,\n init,\n destroy,\n play,\n stop,\n reset,\n isPlaying\n };\n return self;\n}\nAutoplay.globalOptions = undefined;\n\nexport { Autoplay as default };\n//# sourceMappingURL=embla-carousel-autoplay.esm.js.map\n","/* eslint-disable import/no-unresolved */\n\nimport React, { useCallback, useEffect, useState } from 'react';\nimport useEmblaCarousel from 'embla-carousel-react';\nimport Autoplay from 'embla-carousel-autoplay';\nimport styled from 'styled-components';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport { breakpoints } from 'TMConstants';\nimport { node } from 'prop-types';\n\nconst Embla = styled.section`\n postion: relative;\n margin: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n --slide-height: 19rem;\n --slide-spacing: 0px;\n --slide-size: 100%;\n @media (min-width: ${breakpoints.tabletDesktop}px) {\n --slide-size: 29%;\n }\n`;\n\nconst EmblaViewport = styled.div`\n overflow: hidden;\n max-width: calc(var(--slide-size) * 3 + 20);\n padding: 0 20px;\n`;\n\nconst EmblaContainer = styled.div`\n backface-visibility: hidden;\n display: flex;\n touch-action: pan-y pinch-zoom;\n margin-left: calc(var(--slide-spacing) * -1);\n`;\n\nconst EmblaSlide = styled.div`\n flex: 0 0 var(--slide-size);\n min-width: 0;\n padding-left: var(--slide-spacing);\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 20px;\n user-select: none;\n`;\n\nconst CircleWrapper = styled(FlexWrapper)`\n padding: 20px;\n`;\n\nconst Circle = styled.div`\n border: 2px solid ${({ theme }) => theme.colorSystem.primary[1]};\n\n background-color: ${({ theme }) => theme.colorSystem.secondary[2]};\n &.selected {\n background-color: ${({ theme }) => theme.colorSystem.secondary[1]};\n }\n\n border-radius: 50%;\n height: 16px;\n margin-right: 8px;\n width: 16px;\n\n &:last-child {\n margin-right: none;\n }\n`;\n\nexport const useSelectedSnapDisplay = (emblaApi) => {\n const [selectedSnap, setSelectedSnap] = useState(0);\n const [snapCount, setSnapCount] = useState(0);\n\n const updateScrollSnapState = useCallback((api) => {\n setSnapCount(api.scrollSnapList().length);\n setSelectedSnap(api.selectedScrollSnap());\n }, []);\n\n useEffect(() => {\n if (!emblaApi) return;\n updateScrollSnapState(emblaApi);\n emblaApi.on('select', updateScrollSnapState);\n emblaApi.on('reInit', updateScrollSnapState);\n }, [emblaApi, updateScrollSnapState]);\n\n return {\n selectedSnap,\n snapCount\n };\n};\n\nconst Carousel = ({ children, ...rest }) => {\n const [emblaRef, emblaApi] = useEmblaCarousel({ loop: true }, [\n Autoplay()\n ]);\n\n const { selectedSnap } = useSelectedSnapDisplay(emblaApi);\n\n return (\n \n \n \n {children.map((child) => (\n {child}\n ))}\n \n \n {children.map((_, i) => (\n \n ))}\n \n \n \n );\n};\n\nexport default Carousel;\n\nCarousel.propTypes = {\n children: node.isRequired\n};\n","import React from 'react';\nimport { string, shape, arrayOf } from 'prop-types';\nimport styled from 'styled-components';\nimport Container from 'TMComponents/Container';\nimport { breakpoints } from 'TMConstants';\nimport ContentParser from 'TMComponents/ContentParser';\nimport Img from 'TMComponents/ImageDynamic';\nimport { Body, Bold } from 'TMComponents/Typography';\nimport FlexWrapper from 'TMComponents/FlexWrapper';\nimport Carousel from 'TMComponents/Carousel';\nimport imageProps from 'TMPropTypes/imageProps';\nimport star from './star.svg';\n\nconst Wrapper = styled.div`\n background-color: ${({ theme }) => theme.colorSystem.primary[3]};\n border-radius: 35px 35px 35px 10px;\n box-shadow: ${({ theme }) => theme.colorSystem.shadows[9]};\n flex: 0 0 auto;\n margin: 0 10px;\n max-width: 250px;\n padding: 20px;\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n\n @media (min-width: ${breakpoints.tabletDesktop}px) {\n margin-right: 0px;\n }\n`;\n\nconst Header = styled(FlexWrapper)``;\n\nconst Stars = styled(FlexWrapper)`\n margin-left: 30px;\n`;\n\nconst StarImg = styled.img`\n display: block;\n max-width: 200px;\n`;\n\nconst ImageSection = styled.div`\n border-radius: 50%;\n height: 56px;\n width: 56px;\n`;\nconst NoPhoto = styled.div`\n background-color: ${(props) => props.theme.colors.greys.regular};\n\n border-radius: 50%;\n`;\n\nconst Photo = styled(Img)`\n border-radius: 50%;\n height: 56px;\n width: 56px;\n`;\n\nconst AuthorName = styled(Body)`\n ${Bold}\n color: ${({ theme }) => theme.colorSystem.primary[1]};\n margin-bottom: 0;\n margin-left: 10px;\n`;\n\nconst TrustpilotReview = ({ score, image, name, copy }) => {\n return (\n \n
\n \n {image && }\n {!image && }\n \n \n {[...Array(+score).keys()].map((_, i) => (\n \n ))}\n \n
\n \n {name}\n
\n );\n};\n\nconst TrustpilotReviewGroup = ({ components }) => {\n return (\n \n \n {components.map((subItem) => (\n \n ))}\n \n \n );\n};\n\nTrustpilotReview.propTypes = {\n score: string.isRequired,\n copy: string.isRequired,\n name: string.isRequired,\n image: shape(imageProps)\n};\n\nTrustpilotReviewGroup.propTypes = {\n components: arrayOf(shape(TrustpilotReview.propTypes)).isRequired\n};\n\nexport default TrustpilotReview;\nexport { TrustpilotReview, TrustpilotReviewGroup };\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNSAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyLjUwMTkgMC4yMjk0OTJDMTIuOTMyMyAwLjIyOTQ5MiAxMy4zMjUyIDAuNDcyNzYzIDEzLjUxMjQgMC44NjEwNkwxNi43MjE3IDcuNDcxNDdMMjMuODg4OCA4LjUyODc3QzI0LjMwOTggOC41ODk1OCAyNC42NjA3IDguODg0MzIgMjQuNzkxNyA5LjI5MTMzQzI0LjkyMjcgOS42OTgzNCAyNC44MTUxIDEwLjEzODEgMjQuNTE1NyAxMC40Mzc1TDE5LjMxODEgMTUuNTkzTDIwLjU0MzggMjIuODcyNEMyMC42MTQgMjMuMjkzNCAyMC40NDA5IDIzLjcxOTIgMjAuMDk0NyAyMy45NzE4QzE5Ljc0ODUgMjQuMjI0NCAxOS4yODU0IDI0LjI1MjUgMTguOTExMSAyNC4wNTEzTDEyLjUwMTkgMjAuNjI2OEw2LjA5NzI5IDI0LjA0NjZDNS43MTgzNSAyNC4yNDc4IDUuMjU5ODggMjQuMjE5NyA0LjkxMzY4IDIzLjk2NzFDNC41Njc0OSAyMy43MTQ1IDQuMzg5NzIgMjMuMjg4NyA0LjQ1OTg5IDIyLjg2NzdMNS42ODU2IDE1LjU4ODNMMC40ODgwMjYgMTAuNDM3NUMwLjE4MzkzOCAxMC4xMzgxIDAuMDgxMDE1NiA5LjY5MzY2IDAuMjEyMDA4IDkuMjkxMzNDMC4zNDI5OTkgOC44ODg5OSAwLjY5Mzg3MSA4LjU5NDI2IDEuMTE0OTIgOC41Mjg3N0w4LjI4MjA1IDcuNDcxNDdMMTEuNDkxNCAwLjg2MTA2QzExLjY4MzIgMC40NzI3NjMgMTIuMDcxNSAwLjIyOTQ5MiAxMi41MDE5IDAuMjI5NDkyWk0xMi41MDE5IDMuOTI1MzRMMTAuMDQ1OCA4Ljk4NzI0QzkuODgyMDIgOS4zMTk0IDkuNTY4NTggOS41NTMzMSA5LjE5ODk5IDkuNjA5NDVMMy42NjQ1OCAxMC40MjM1TDcuNjgzMjMgMTQuNDA0N0M3Ljk0MDUzIDE0LjY2MiA4LjA2MjE3IDE1LjAyNjkgOC4wMDEzNSAxNS4zODcxTDcuMDUxNjYgMjAuOTg3TDExLjk3MzIgMTguMzU3OEMxMi4zMDU0IDE4LjE4MDEgMTIuNzAzIDE4LjE4MDEgMTMuMDMwNSAxOC4zNTc4TDE3Ljk1MjEgMjAuOTg3TDE3LjAwNyAxNS4zOTE4QzE2Ljk0NjIgMTUuMDMxNiAxNy4wNjMyIDE0LjY2NjcgMTcuMzI1MiAxNC40MDk0TDIxLjM0MzggMTAuNDI4MkwxNS44MDk0IDkuNjA5NDVDMTUuNDQ0NSA5LjU1MzMxIDE1LjEyNjQgOS4zMjQwNyAxNC45NjI2IDguOTg3MjRMMTIuNTAxOSAzLjkyNTM0WiIgZmlsbD0iI0ZGQjQ5NCIvPgo8cGF0aCBkPSJNMTIuNTAxOSAzLjkyNTM0TDEwLjA0NTggOC45ODcyNEM5Ljg4MjAyIDkuMzE5NCA5LjU2ODU4IDkuNTUzMzEgOS4xOTg5OSA5LjYwOTQ1TDMuNjY0NTggMTAuNDIzNUw3LjY4MzIzIDE0LjQwNDdDNy45NDA1MyAxNC42NjIgOC4wNjIxNyAxNS4wMjY5IDguMDAxMzUgMTUuMzg3MUw3LjA1MTY2IDIwLjk4N0wxMS45NzMyIDE4LjM1NzhDMTIuMzA1NCAxOC4xODAxIDEyLjcwMyAxOC4xODAxIDEzLjAzMDUgMTguMzU3OEwxNy45NTIxIDIwLjk4N0wxNy4wMDcgMTUuMzkxOEMxNi45NDYyIDE1LjAzMTYgMTcuMDYzMiAxNC42NjY3IDE3LjMyNTIgMTQuNDA5NEwyMS4zNDM4IDEwLjQyODJMMTUuODA5NCA5LjYwOTQ1QzE1LjQ0NDUgOS41NTMzMSAxNS4xMjY0IDkuMzI0MDcgMTQuOTYyNiA4Ljk4NzI0TDEyLjUwMTkgMy45MjUzNFoiIGZpbGw9IiNGRkI0OTQiLz4KPC9zdmc+Cg==\"","/* eslint-disable better-styled-components/sort-declarations-alphabetically */\nimport styled, { css } from 'styled-components';\n\nexport const Bold = css`\n font-weight: 700;\n`;\nexport const SemiBold = css`\n font-weight: 600;\n`;\nexport const Medium = css`\n font-weight: 500;\n`;\n\n/* istanbul ignore next */\nexport const Strong = css`\n strong {\n ${Bold}\n }\n`;\n\n/* istanbul ignore next */\nexport const Mark = css`\n mark {\n color: ${({ theme }) => theme.colorSystem.secondary[3]};\n background: none;\n }\n`;\n\nexport const SmallText = css`\n font-size: 12px;\n line-height: 20px;\n`;\n\nexport const MediumText = css`\n font-size: 16px;\n line-height: 24px;\n`;\n\nexport const LargeText = css`\n font-size: 18px;\n line-height: 24px;\n`;\n\nexport const CTA = css`\n ${Bold}\n ${LargeText}\n`;\n\nexport const CategoryLabels = css`\n ${Medium}\n ${SmallText}\n`;\n\nexport const Breadcrumbs = css`\n ${SemiBold}\n ${MediumText}\n`;\n\nexport const Nav = css`\n ${Bold}\n ${MediumText}\n`;\n\nexport const FooterTitles = css`\n ${SemiBold}\n ${MediumText}\n`;\n\nexport const FooterContent = css`\n ${Medium}\n ${SmallText}\n`;\n\nexport const FormFieldLabel = css`\n ${Medium}\n ${MediumText}\n`;\nexport const FormFieldLabelSmall = css`\n ${Medium}\n ${SmallText}\n`;\nexport const FormFieldInput = css`\n ${Medium}\n ${MediumText}\n`;\n\nconst TMText = css`\n margin: 16px 0;\n letter-spacing: 0px;\n`;\n\nconst TMHeading = css`\n ${TMText}\n ${Bold};\n`;\n\nexport const H1Alt = styled.h1`\n ${TMHeading}\n font-size: 56px;\n line-height: 64px;\n letter-spacing: -1.5px;\n`;\nH1Alt.displayName = 'H1Alt';\n\nexport const H1 = styled.h1`\n ${TMHeading}\n font-size: 48px;\n line-height: 56px;\n letter-spacing: -1px;\n`;\nH1.displayName = 'H1';\n\nexport const H2 = styled.h2`\n ${TMHeading}\n font-size: 40px;\n line-height: 48px;\n letter-spacing: -1px;\n`;\nH2.displayName = 'H2';\n\nexport const H3 = styled.h3`\n ${TMHeading}\n font-size: 32px;\n line-height: 40px;\n letter-spacing: -0.5px;\n`;\nH3.displayName = 'H3';\n\nexport const H4 = styled.h4`\n ${TMHeading}\n font-size: 24px;\n line-height: 40px;\n letter-spacing: -0.5px;\n`;\nH4.displayName = 'H4';\n\nexport const H5 = styled.h5`\n ${TMHeading}\n font-size: 20px;\n line-height: 28px;\n`;\nH5.displayName = 'H5';\n\nexport const BodyLarge = styled.p`\n ${TMText}\n font-size: 20px;\n line-height: 28px;\n`;\nBodyLarge.displayName = 'BodyLarge';\n\nexport const Body = styled.p`\n ${TMText}\n font-size: 16px;\n line-height: 24px;\n`;\nBody.displayName = 'Body';\n\nexport const BodySmall = styled.p`\n ${TMText}\n font-size: 14px;\n line-height: 22px;\n`;\nBodySmall.displayName = 'BodySmall';\n\nexport const BodyExtraSmall = styled.p`\n ${TMText}\n font-size: 12px;\n line-height: 20px;\n`;\nBodyExtraSmall.displayName = 'BodyExtraSmall';\n","import React from 'react';\nimport { string, shape } from 'prop-types';\nimport styled from 'styled-components';\nimport { breakpoints } from 'TMConstants';\n\nconst Wrapper = styled.div`\n aspect-ratio: 1.6;\n height: 100%;\n max-height: 288px;\n padding: 16px 0;\n\n @media (min-width: ${breakpoints.mobileTablet}px) {\n margin: 8px;\n max-height: 675px;\n }\n`;\n\nexport const youtubeGetID = (url) => {\n let ID = '';\n const splitUrl = url.split(/(vi\\/|v=|\\/v\\/|youtu\\.be\\/|\\/embed\\/)/);\n const suspectedID = splitUrl[2];\n if (suspectedID) {\n ID = suspectedID.split(/[^0-9a-z_-]/i);\n // eslint-disable-next-line prefer-destructuring\n ID = ID[0];\n }\n return ID;\n};\n\nconst Video = ({ source: { url, title, className } }) => {\n let processedUrl = url;\n\n const isYoutubeURL = url.includes('www.youtube');\n\n if (isYoutubeURL) {\n processedUrl = `https://www.youtube.com/embed/${youtubeGetID(\n url\n )}`;\n }\n\n return (\n \n \n \n );\n};\n\nVideo.propTypes = {\n className: string,\n source: shape({\n url: string.isRequired,\n title: string.isRequired\n }).isRequired\n};\n\nVideo.defaultProps = {\n className: ''\n};\n\nexport default Video;\n","import React, { useContext } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { string } from 'prop-types';\n\nconst Search = ({ className }) => {\n const { colorSystem } = useContext(ThemeContext);\n\n return (\n \n \n \n \n );\n};\n\nSearch.propTypes = {\n className: string\n};\n\nSearch.defaultProps = {\n className: ''\n};\n\nexport default Search;\n","import React, { useRef } from 'react';\nimport styled from 'styled-components';\nimport { string, func, bool } from 'prop-types';\nimport Icon from 'TMComponents/Icons/Search';\nimport { AnchorLink } from 'gatsby-plugin-anchor-links';\nimport isEnterKeyPressed from '../../../utils/isEnterKeyPressed';\nimport {\n FormFieldInput,\n FormFieldLabel,\n FormFieldLabelSmall\n} from '../../Typography';\n\nconst Wrapper = styled.div`\n position: relative;\n input:focus + label {\n ${FormFieldLabelSmall}\n top: 10px;\n }\n ${(isSearch) => isSearch && `min-width: 300px;`}\n ${(isSearch) => isSearch && `max-width: 360px;`}\n`;\n\nconst StyledInput = styled.input`\n ${FormFieldInput}\n color: ${({ theme }) => theme.colorSystem.primary[1]};\n background-color: ${({ theme }) => theme.colorSystem.primary[3]};\n border: 1px solid rgba(34, 34, 34, 0.1);\n border-radius: 5px;\n padding: 29px 18px 11px;\n position: relative;\n text-align: left;\n width: calc(100% - 40px);\n box-shadow: inset ${({ theme }) => theme.colorSystem.shadows['6']};\n &:focus {\n outline: none;\n }\n &:disabled {\n background-color: ${({ theme }) => theme.colors.greys.light};\n }\n`;\nconst Label = styled.label`\n ${FormFieldLabel}\n color: ${({ theme }) => theme.colorSystem.UIText[2]};\n cursor: text;\n left: 18px;\n position: absolute;\n top: 35%;\n transition: all 0.25s;\n ${({ hasContent }) => hasContent && 'top: 10px;'}\n ${({ hasContent }) => hasContent && FormFieldLabelSmall}\n`;\n\nconst Search = styled(Icon)`\n position: absolute;\n right: 18px;\n top: 40%;\n`;\n\nconst Input = ({\n placeholder,\n value,\n onChange,\n onKeyUp,\n search,\n isHelpAndSupport,\n ...rest\n}) => {\n const inputEl = useRef(null);\n const focus = () => {\n inputEl.current.focus();\n };\n return (\n \n {\n focus(e);\n onChange(e);\n }}\n onKeyPress={focus}\n onClick={focus}\n onKeyUp={(e) => {\n onKeyUp(e);\n }}\n />\n \n {search &&\n (isHelpAndSupport ? (\n \n \n \n ) : (\n \n ))}\n \n );\n};\n\nInput.propTypes = {\n placeholder: string.isRequired,\n value: string.isRequired,\n onChange: func.isRequired,\n onKeyUp: func,\n search: bool,\n isHelpAndSupport: bool,\n type: string\n};\n\nInput.defaultProps = {\n onKeyUp: isEnterKeyPressed,\n search: false,\n isHelpAndSupport: false,\n type: 'text'\n};\n\nexport default Input;\n","export const breakpoints = {\n smallMobile: 370,\n mobile: 412,\n smallTablet: 648,\n mobileTablet: 768,\n tabletDesktop: 1025,\n laptop: 1440,\n smallDesktop: 1600\n};\nexport const headerHeight = {\n mobile: 100,\n desktop: 94\n};\n","import { string, shape, number, arrayOf } from 'prop-types';\n\nconst gatsbyImageDataProps = {\n width: number,\n height: number,\n images: shape({\n sources: arrayOf(string),\n fallback: shape({\n src: string\n })\n })\n};\n\nexport default {\n ...gatsbyImageDataProps\n};\n","/*\n Groups content from the CMS based off their IDs\n\n Slice data from the CMS is returned in a flattened array which makes it difficult\n to group bits of content so they can be wrapped and positioned correctly by\n a parent element (grid/flex etc)\n\n This function takes the flat array of CMS data and groups elements into their\n own unique \"group\" objects so they can be passed into the component mapper and\n wrapped in whatever wrapper is needed for that element\n\n E.g.\n\n [\n {} // element 1, doesnt need grouping\n {} // element 2, needs grouping with element 3/4\n {} // element 3, needs grouping as above,\n {} // element 4, needs grouping as above,\n {} // element 5, doesnt need grouping\n ]\n\n The end result of this grouper is a new flat array, but with grouped content together\n\n [\n {} // element 1\n { components: [] } // contains elements 2, 3 and 4\n {} // element 5\n ]\n*/\n\n// TODO: Fill this in with api keys as we flesh out the models in DATO\nconst defaultKeys = [\n 'DatoCmsAppStoreLink',\n 'DatoCmsCard',\n 'DatoCmsCardV2',\n 'DatoCmsInfoCard',\n 'DatoCmsTrustpilotReview',\n 'DatoCmsButton'\n];\n\n// If you dont specify an array of keys, just fall back to the list above\nexport default (data, keysToGroup = defaultKeys) =>\n data.reduce((arr, next) => {\n // Need to create a unique key for the groups so that any new CMS slices wont collide\n const key = next.__typename;\n const groupKey = `${key}__component_group`;\n\n // If the current component we're looping isn't in the list of\n // components that need grouping then just return it\n if (!keysToGroup.includes(key)) {\n arr.push(next);\n return arr;\n }\n\n // Check if we're currently mapping a group,\n // if so, push the comp in to that existing group and return\n const lastItem = arr[arr.length - 1] || {};\n\n if (lastItem.__typename === groupKey) {\n lastItem.components.push(next);\n for (let i = 0; i < lastItem.components.length; i++) {\n if (lastItem.components[i].hideOnDesktop) {\n lastItem.hideOnDesktop = true;\n }\n if (lastItem.components[i].hideOnMobile) {\n lastItem.hideOnMobile = true;\n }\n if (lastItem.components[i].whiteBackground) {\n lastItem.whiteBackground = true;\n }\n }\n return arr;\n }\n\n // If get to this point, need to create a new group and push the current component in\n const newGroupObj = {\n id: next.id,\n __typename: groupKey,\n components: [next]\n };\n\n for (let i = 0; i < newGroupObj.components.length; i++) {\n if (newGroupObj.components[i].hideOnDesktop) {\n newGroupObj.hideOnDesktop = true;\n }\n if (newGroupObj.components[i].hideOnMobile) {\n newGroupObj.hideOnMobile = true;\n }\n if (newGroupObj.components[i].whiteBackground) {\n newGroupObj.whiteBackground = true;\n }\n }\n if (newGroupObj.components[0].backgroundVariant) {\n newGroupObj.backgroundVariant =\n newGroupObj.components[0].backgroundVariant;\n }\n arr.push(newGroupObj);\n\n return arr;\n }, []);\n","// fires datalayer.push event with passed data. Used by Google Analytics\n\n/* eslint-disable default-param-last */\n\nconst mandatory = () => {\n throw new Error('Missing parameter!');\n};\n\nexport const fireGAEvent = (\n event = mandatory(),\n eventAction,\n eventCategory,\n eventLabel,\n payload\n) => {\n const eventObj = {\n event,\n eventAction,\n eventCategory,\n eventLabel\n };\n window.dataLayer.push({ ...eventObj, ...payload });\n};\n\nexport const fireSEOEvent = (sourceCode, platform) => {\n if (\n sourceCode === null ||\n sourceCode === undefined ||\n sourceCode.length !== 4\n ) {\n return 'error - sourceCode value incorrect';\n }\n if (platform !== 'app' && platform !== 'web') {\n return 'error - platform value should be \"app\" or \"web\"';\n }\n window.dataLayer.push({\n event: 'lpclick',\n eventCategory: 'landing page',\n eventAction: 'click',\n eventLabel: 'SEO',\n utmCampaign: sourceCode,\n platform\n });\n return 'data pushed to dataLayer';\n};\n","export default (callback, wait) => {\n let timeout;\n return (...args) => {\n const context = this;\n clearTimeout(timeout);\n timeout = setTimeout(() => callback.apply(context, args), wait);\n };\n};\n","export default (keyCode, isHelpAndSupport, to, func) => {\n if (keyCode === 'Enter' && isHelpAndSupport) {\n func(to);\n }\n};\n","export default () => {\n const mobileRegex = /Mobi|iP(hone|od|ad)|Android|BlackBerry/;\n const isNavigatorAvailable = typeof navigator !== 'undefined';\n if (isNavigatorAvailable) {\n return mobileRegex.test(navigator.userAgent);\n }\n return false;\n};\n","export default () => {\n if (typeof window === 'undefined') {\n return true;\n }\n return false;\n};\n","export default (node) => {\n if (node?.value) {\n const children = node?.value?.document.children;\n const grandchildren = children[0]?.children;\n\n return (\n children.length === 1 &&\n grandchildren.length === 1 &&\n grandchildren[0].value === ''\n );\n }\n if (node?.children) {\n const { children } = node;\n\n return children.length === 1 && children[0].value === '';\n }\n return true;\n};\n","export default (search) =>\n search\n .slice(1)\n .split('&')\n .reduce((obj, next) => {\n const [key, value] = next.split('=');\n const isSnakeCase = key.includes('_');\n\n let camelCaseKey = key;\n if (camelCaseKey.charAt(0) === '_') {\n camelCaseKey = camelCaseKey.substr(1);\n }\n if (isSnakeCase) {\n camelCaseKey = camelCaseKey\n .split('_')\n .map((word) => word[0].toUpperCase() + word.slice(1))\n .join('');\n camelCaseKey =\n camelCaseKey[0].toLowerCase() + camelCaseKey.slice(1);\n }\n return { ...obj, [camelCaseKey]: value || true };\n }, {});\n","import isMobileUser from 'TMUtils/isMobileUser';\n// returns a string from arguments passed in depending on whether user is mobile or desktop\n// mostly for testability purposes\nexport default (mobileString, desktopString) => {\n if (isMobileUser() || desktopString === '') {\n return mobileString;\n }\n return desktopString;\n};\n","/* eslint-disable prefer-destructuring */\nexport default (type, value, url) => {\n if (!type) return {};\n if (!value) return {};\n\n const structuredText = {\n type: 'paragraph',\n children: [\n {\n type: 'span'\n }\n ]\n };\n\n if (type === 'paragraph') {\n structuredText.children[0].value = value;\n }\n if (type === 'link') {\n structuredText.children[0].type = type;\n structuredText.children[0].url = url;\n structuredText.children[0].children = [\n {\n type: 'span',\n value\n }\n ];\n }\n\n return structuredText;\n};\n","import invariant from \"invariant\";\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport React, { useContext, createContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"invariant\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\";\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\nvar LocationContext = createNamedContext(\"Location\");\n\n// sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(\n LocationContext.Consumer,\n null,\n function (context) {\n return context ? children(context) : React.createElement(\n LocationProvider,\n null,\n children\n );\n }\n );\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: { unlisten: null }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n\n return { navigate: navigate, location: location };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, { replace: true });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return { context: _this2.getContext() };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n\n return React.createElement(\n LocationContext.Provider,\n { value: context },\n typeof children === \"function\" ? children(context) : children || null\n );\n };\n\n return LocationProvider;\n}(React.Component);\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? LocationProvider.propTypes = {\n history: PropTypes.object.isRequired\n} : void 0;\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(\n LocationContext.Provider,\n {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n },\n children\n );\n};\n////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n});\n\n////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\nvar Router = function Router(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (baseContext) {\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n }\n );\n }\n );\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n\n\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value;\n\n // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(\n Router,\n { location: location, primary: primary },\n element.props.children\n ) : undefined);\n\n // using 'div' for < 16.3 support\n var FocusWrapper = primary ? FocusHandler : component;\n // don't pass any props to 'div'\n var wrapperProps = primary ? _extends({ uri: uri, location: location, component: component }, domProps) : domProps;\n\n return React.createElement(\n BaseContext.Provider,\n {\n value: { baseuri: uri, basepath: basepath, navigate: props.navigate }\n },\n React.createElement(\n FocusWrapper,\n wrapperProps,\n clone\n )\n );\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\n\n\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(\n FocusContext.Consumer,\n null,\n function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n }\n );\n};\n\n// don't focus on initial render\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(\n Comp,\n _extends({\n style: _extends({ outline: \"none\" }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps),\n React.createElement(\n FocusContext.Provider,\n { value: this.requestFocus },\n this.props.children\n )\n );\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {};\n\n////////////////////////////////////////////////////////////////////////////////\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({ isCurrent: isCurrent, isPartiallyCurrent: isPartiallyCurrent, href: href, location: location }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n }\n );\n }\n );\n});\n\nLink.displayName = \"Link\";\n\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes = {\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n }\n\n // Support React < 16 with this hook\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), { replace: replace, state: state });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, { baseuri: baseuri }, props));\n }\n );\n }\n );\n};\n\nprocess.env.NODE_ENV !== \"production\" ? Redirect.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n }\n );\n }\n );\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a BaseContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var results = match(context.basepath, location.pathname);\n\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return { value: element, default: true };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n////////////////////////////////////////////////////////////////////////\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch, resolve , BaseContext };","import r from\"gatsby-background-image\";import e from\"react\";function l(){return(l=Object.assign||function(r){for(var e=1;e\"[object String]\"===Object.prototype.toString.call(r),n=r=>\"fixed\"===r.layout?\"fixed\":\"fluid\",i=r=>{let e;for(e=0;er.width/r.height,a=r=>{var e,l,t,n;return r.placeholder?null!=(e=r.placeholder)&&null!=(l=e.fallback)&&l.includes(\"base64\")?{base64:null==(t=r.placeholder)?void 0:t.fallback}:{tracedSVG:null==(n=r.placeholder)?void 0:n.fallback}:{}},c=r=>{if(r.srcSet){var e;const l=[...r.srcSet.matchAll(/(?:([^\"'\\s,]+)\\s*(?:\\s+\\d+[wx])(?:,\\s*)?)/gm)],t=r.sizes.replace(\"px\",\"\"),n=l.filter(r=>(null==r?void 0:r[0].includes(\"100w\"))||(null==r?void 0:r[0].includes(\"1x\"))||(null==r?void 0:r[0].includes(`${t}w`)));return(null==n||null==(e=n[0])?void 0:e[1])||\"\"}return\"\"},o=r=>{var e,l,t;return null!=(e=r.images)&&e.sources&&Array.isArray(null==(l=r.images)?void 0:l.sources)?null==(t=r.images)?void 0:t.sources.reduce((r,e)=>{var l;const t=(null==e||null==(l=e.type)?void 0:l.split(\"/\")[1])||\"\",n=(null==t?void 0:t.charAt(0).toUpperCase())+t.slice(1),i=`srcSet${n}`,u=`src${n}`;return n&&(!(i in r)&&null!=e&&e.srcSet&&(r[i]=e.srcSet),!(u in r)&&null!=e&&e.srcSet&&(r[u]=c(e))),r},{}):{}},s=r=>{if(r&&r.layout){const e={},t=n(r),i=u(r),c=a(r),s=o(r);return e[t]=l({},r.images.fallback,s,c,\"fluid\"===t?{aspectRatio:i}:{},\"fixed\"===t?{width:r.width,height:r.height}:{}),e}return null};function d(r){if(r){if(Array.isArray(r)){const[e,u]=(r=>{const e=i(r);if(e){const i=n(e),u=r.map(r=>{if(t(r))return r;const e=s(r);return l({},e&&e[i],null!=r&&r.media?{media:r.media}:{})});return[i,u]}return[]})(r);return e?{[e]:u}:null}return s(r)}return null}const f=t=>{const{image:n,children:i}=t,u=function(r,e){if(null==r)return{};var l,t,n={},i=Object.keys(r);for(t=0;t=0||(n[l]=r[l]);return n}(t,[\"image\",\"children\"]),a=n&&d(n);return a?e.createElement(r,l({},a,u),i):e.createElement(\"div\",null,i)};export{f as BgImage,s as convertSingleBgImage,d as convertToBgImage,o as getAllExtraSrcSets,u as getAspectRatio,n as getBgImageType,a as getPlaceholder,i as getSingleImage,c as getSrc,t as isString};\n//# sourceMappingURL=index.modern.js.map\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/*!\n * html-attributes\n * https://github.com/alexmingoia/html-attributes\n */\n\n'use strict';\n\n/**\n * @module html-attributes\n */\n\nmodule.exports = {\n \"abbr\": \"abbr\",\n \"accept\": \"accept\",\n \"acceptCharset\": \"accept-charset\",\n \"accessKey\": \"accesskey\",\n \"action\": \"action\",\n \"allowFullScreen\": \"allowfullscreen\",\n \"allowTransparency\": \"allowtransparency\",\n \"alt\": \"alt\",\n \"async\": \"async\",\n \"autoComplete\": \"autocomplete\",\n \"autoFocus\": \"autofocus\",\n \"autoPlay\": \"autoplay\",\n \"cellPadding\": \"cellpadding\",\n \"cellSpacing\": \"cellspacing\",\n \"challenge\": \"challenge\",\n \"charset\": \"charset\",\n \"checked\": \"checked\",\n \"cite\": \"cite\",\n \"class\": \"class\",\n \"className\": \"class\",\n \"cols\": \"cols\",\n \"colSpan\": \"colspan\",\n \"command\": \"command\",\n \"content\": \"content\",\n \"contentEditable\": \"contenteditable\",\n \"contextMenu\": \"contextmenu\",\n \"controls\": \"controls\",\n \"coords\": \"coords\",\n \"crossOrigin\": \"crossorigin\",\n \"data\": \"data\",\n \"dateTime\": \"datetime\",\n \"default\": \"default\",\n \"defer\": \"defer\",\n \"dir\": \"dir\",\n \"disabled\": \"disabled\",\n \"download\": \"download\",\n \"draggable\": \"draggable\",\n \"dropzone\": \"dropzone\",\n \"encType\": \"enctype\",\n \"for\": \"for\",\n \"form\": \"form\",\n \"formAction\": \"formaction\",\n \"formEncType\": \"formenctype\",\n \"formMethod\": \"formmethod\",\n \"formNoValidate\": \"formnovalidate\",\n \"formTarget\": \"formtarget\",\n \"frameBorder\": \"frameBorder\",\n \"headers\": \"headers\",\n \"height\": \"height\",\n \"hidden\": \"hidden\",\n \"high\": \"high\",\n \"href\": \"href\",\n \"hrefLang\": \"hreflang\",\n \"htmlFor\": \"for\",\n \"httpEquiv\": \"http-equiv\",\n \"icon\": \"icon\",\n \"id\": \"id\",\n \"inputMode\": \"inputmode\",\n \"isMap\": \"ismap\",\n \"itemId\": \"itemid\",\n \"itemProp\": \"itemprop\",\n \"itemRef\": \"itemref\",\n \"itemScope\": \"itemscope\",\n \"itemType\": \"itemtype\",\n \"kind\": \"kind\",\n \"label\": \"label\",\n \"lang\": \"lang\",\n \"list\": \"list\",\n \"loop\": \"loop\",\n \"manifest\": \"manifest\",\n \"max\": \"max\",\n \"maxLength\": \"maxlength\",\n \"media\": \"media\",\n \"mediaGroup\": \"mediagroup\",\n \"method\": \"method\",\n \"min\": \"min\",\n \"minLength\": \"minlength\",\n \"multiple\": \"multiple\",\n \"muted\": \"muted\",\n \"name\": \"name\",\n \"noValidate\": \"novalidate\",\n \"open\": \"open\",\n \"optimum\": \"optimum\",\n \"pattern\": \"pattern\",\n \"ping\": \"ping\",\n \"placeholder\": \"placeholder\",\n \"poster\": \"poster\",\n \"preload\": \"preload\",\n \"radioGroup\": \"radiogroup\",\n \"readOnly\": \"readonly\",\n \"rel\": \"rel\",\n \"required\": \"required\",\n \"role\": \"role\",\n \"rows\": \"rows\",\n \"rowSpan\": \"rowspan\",\n \"sandbox\": \"sandbox\",\n \"scope\": \"scope\",\n \"scoped\": \"scoped\",\n \"scrolling\": \"scrolling\",\n \"seamless\": \"seamless\",\n \"selected\": \"selected\",\n \"shape\": \"shape\",\n \"size\": \"size\",\n \"sizes\": \"sizes\",\n \"sortable\": \"sortable\",\n \"span\": \"span\",\n \"spellCheck\": \"spellcheck\",\n \"src\": \"src\",\n \"srcDoc\": \"srcdoc\",\n \"srcSet\": \"srcset\",\n \"start\": \"start\",\n \"step\": \"step\",\n \"style\": \"style\",\n \"tabIndex\": \"tabindex\",\n \"target\": \"target\",\n \"title\": \"title\",\n \"translate\": \"translate\",\n \"type\": \"type\",\n \"typeMustMatch\": \"typemustmatch\",\n \"useMap\": \"usemap\",\n \"value\": \"value\",\n \"width\": \"width\",\n \"wmode\": \"wmode\",\n \"wrap\": \"wrap\"\n};\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function() {\n'use strict';\n\n// Exit early if we're not running in a browser.\nif (typeof window !== 'object') {\n return;\n}\n\n// Exit early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n/**\n * Returns the embedding frame element, if any.\n * @param {!Document} doc\n * @return {!Element}\n */\nfunction getFrameElement(doc) {\n try {\n return doc.defaultView && doc.defaultView.frameElement || null;\n } catch (e) {\n // Ignore the error.\n return null;\n }\n}\n\n/**\n * A local reference to the root document.\n */\nvar document = (function(startDoc) {\n var doc = startDoc;\n var frame = getFrameElement(doc);\n while (frame) {\n doc = frame.ownerDocument;\n frame = getFrameElement(doc);\n }\n return doc;\n})(window.document);\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n/**\n * The signal updater for cross-origin intersection. When not null, it means\n * that the polyfill is configured to work in a cross-origin mode.\n * @type {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nvar crossOriginUpdater = null;\n\n/**\n * The current cross-origin intersection. Only used in the cross-origin mode.\n * @type {DOMRect|ClientRect}\n */\nvar crossOriginRect = null;\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = ensureDOMRect(entry.rootBounds);\n this.boundingClientRect = ensureDOMRect(entry.boundingClientRect);\n this.intersectionRect = ensureDOMRect(entry.intersectionRect || getEmptyRect());\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (\n options.root &&\n options.root.nodeType != 1 &&\n options.root.nodeType != 9\n ) {\n throw new Error('root must be a Document or Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n\n /** @private @const {!Array} */\n this._monitoringDocuments = [];\n /** @private @const {!Array} */\n this._monitoringUnsubscribes = [];\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n\n/**\n * Sets up the polyfill in the cross-origin mode. The result is the\n * updater function that accepts two arguments: `boundingClientRect` and\n * `intersectionRect` - just as these fields would be available to the\n * parent via `IntersectionObserverEntry`. This function should be called\n * each time the iframe receives intersection information from the parent\n * window, e.g. via messaging.\n * @return {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nIntersectionObserver._setupCrossOriginUpdater = function() {\n if (!crossOriginUpdater) {\n /**\n * @param {DOMRect|ClientRect} boundingClientRect\n * @param {DOMRect|ClientRect} intersectionRect\n */\n crossOriginUpdater = function(boundingClientRect, intersectionRect) {\n if (!boundingClientRect || !intersectionRect) {\n crossOriginRect = getEmptyRect();\n } else {\n crossOriginRect = convertFromParentRect(boundingClientRect, intersectionRect);\n }\n registry.forEach(function(observer) {\n observer._checkForIntersections();\n });\n };\n }\n return crossOriginUpdater;\n};\n\n\n/**\n * Resets the cross-origin mode.\n */\nIntersectionObserver._resetCrossOriginUpdater = function() {\n crossOriginUpdater = null;\n crossOriginRect = null;\n};\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections(target.ownerDocument);\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n return item.element != target;\n });\n this._unmonitorIntersections(target.ownerDocument);\n if (this._observationTargets.length == 0) {\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorAllIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array} An array of margin objects with the keys\n * value and unit.\n */\nIntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function(margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return {value: parseFloat(parts[1]), unit: parts[2]};\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n};\n\n\n/**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._monitorIntersections = function(doc) {\n var win = doc.defaultView;\n if (!win) {\n // Already destroyed.\n return;\n }\n if (this._monitoringDocuments.indexOf(doc) != -1) {\n // Already monitoring.\n return;\n }\n\n // Private state for monitoring.\n var callback = this._checkForIntersections;\n var monitoringInterval = null;\n var domObserver = null;\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n monitoringInterval = win.setInterval(callback, this.POLL_INTERVAL);\n } else {\n addEvent(win, 'resize', callback, true);\n addEvent(doc, 'scroll', callback, true);\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in win) {\n domObserver = new win.MutationObserver(callback);\n domObserver.observe(doc, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n\n this._monitoringDocuments.push(doc);\n this._monitoringUnsubscribes.push(function() {\n // Get the window object again. When a friendly iframe is destroyed, it\n // will be null.\n var win = doc.defaultView;\n\n if (win) {\n if (monitoringInterval) {\n win.clearInterval(monitoringInterval);\n }\n removeEvent(win, 'resize', callback, true);\n }\n\n removeEvent(doc, 'scroll', callback, true);\n if (domObserver) {\n domObserver.disconnect();\n }\n });\n\n // Also monitor the parent.\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n if (frame) {\n this._monitorIntersections(frame.ownerDocument);\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._unmonitorIntersections = function(doc) {\n var index = this._monitoringDocuments.indexOf(doc);\n if (index == -1) {\n return;\n }\n\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n\n // Check if any dependent targets are still remaining.\n var hasDependentTargets =\n this._observationTargets.some(function(item) {\n var itemDoc = item.element.ownerDocument;\n // Target is in this context.\n if (itemDoc == doc) {\n return true;\n }\n // Target is nested in this context.\n while (itemDoc && itemDoc != rootDoc) {\n var frame = getFrameElement(itemDoc);\n itemDoc = frame && frame.ownerDocument;\n if (itemDoc == doc) {\n return true;\n }\n }\n return false;\n });\n if (hasDependentTargets) {\n return;\n }\n\n // Unsubscribe.\n var unsubscribe = this._monitoringUnsubscribes[index];\n this._monitoringDocuments.splice(index, 1);\n this._monitoringUnsubscribes.splice(index, 1);\n unsubscribe();\n\n // Also unmonitor the parent.\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n if (frame) {\n this._unmonitorIntersections(frame.ownerDocument);\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._unmonitorAllIntersections = function() {\n var unsubscribes = this._monitoringUnsubscribes.slice(0);\n this._monitoringDocuments.length = 0;\n this._monitoringUnsubscribes.length = 0;\n for (var i = 0; i < unsubscribes.length; i++) {\n unsubscribes[i]();\n }\n};\n\n\n/**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\nIntersectionObserver.prototype._checkForIntersections = function() {\n if (!this.root && crossOriginUpdater && !crossOriginRect) {\n // Cross origin monitoring, but no initial data available yet.\n return;\n }\n\n var rootIsInDom = this._rootIsInDom();\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function(item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n var rootContainsTarget = this._rootContainsTarget(target);\n var oldEntry = item.entry;\n var intersectionRect = rootIsInDom && rootContainsTarget &&\n this._computeTargetAndRootIntersection(target, targetRect, rootRect);\n\n var rootBounds = null;\n if (!this._rootContainsTarget(target)) {\n rootBounds = getEmptyRect();\n } else if (!crossOriginUpdater || this.root) {\n rootBounds = rootRect;\n }\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootBounds,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n};\n\n\n/**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} targetRect The bounding rect of the target.\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\nIntersectionObserver.prototype._computeTargetAndRootIntersection =\n function(target, targetRect, rootRect) {\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot && parent) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ?\n window.getComputedStyle(parent) : {};\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display == 'none') return null;\n\n if (parent == this.root || parent.nodeType == /* DOCUMENT */ 9) {\n atRoot = true;\n if (parent == this.root || parent == document) {\n if (crossOriginUpdater && !this.root) {\n if (!crossOriginRect ||\n crossOriginRect.width == 0 && crossOriginRect.height == 0) {\n // A 0-size cross-origin intersection means no-intersection.\n parent = null;\n parentRect = null;\n intersectionRect = null;\n } else {\n parentRect = crossOriginRect;\n }\n } else {\n parentRect = rootRect;\n }\n } else {\n // Check if there's a frame that can be navigated to.\n var frame = getParentNode(parent);\n var frameRect = frame && getBoundingClientRect(frame);\n var frameIntersect =\n frame &&\n this._computeTargetAndRootIntersection(frame, frameRect, rootRect);\n if (frameRect && frameIntersect) {\n parent = frame;\n parentRect = convertFromParentRect(frameRect, frameIntersect);\n } else {\n parent = null;\n intersectionRect = null;\n }\n }\n } else {\n // If the element has a non-visible overflow, and it's not the \n // or element, update the intersection rect.\n // Note: and cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n var doc = parent.ownerDocument;\n if (parent != doc.body &&\n parent != doc.documentElement &&\n parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n }\n if (!intersectionRect) break;\n parent = parent && getParentNode(parent);\n }\n return intersectionRect;\n};\n\n\n/**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {ClientRect} The expanded root rect.\n * @private\n */\nIntersectionObserver.prototype._getRootRect = function() {\n var rootRect;\n if (this.root && !isDoc(this.root)) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use / instead of window since scroll bars affect size.\n var doc = isDoc(this.root) ? this.root : document;\n var html = doc.documentElement;\n var body = doc.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n return this._expandRectByRootMargin(rootRect);\n};\n\n\n/**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {DOMRect|ClientRect} rect The rect object to expand.\n * @return {ClientRect} The expanded rect.\n * @private\n */\nIntersectionObserver.prototype._expandRectByRootMargin = function(rect) {\n var margins = this._rootMarginValues.map(function(margin, i) {\n return margin.unit == 'px' ? margin.value :\n margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n\n return newRect;\n};\n\n\n/**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\nIntersectionObserver.prototype._hasCrossedThreshold =\n function(oldEntry, newEntry) {\n\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ?\n oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ?\n newEntry.intersectionRatio || 0 : -1;\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i];\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio ||\n threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n};\n\n\n/**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\nIntersectionObserver.prototype._rootIsInDom = function() {\n return !this.root || containsDeep(document, this.root);\n};\n\n\n/**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\nIntersectionObserver.prototype._rootContainsTarget = function(target) {\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n return (\n containsDeep(rootDoc, target) &&\n (!this.root || rootDoc == target.ownerDocument)\n );\n};\n\n\n/**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\nIntersectionObserver.prototype._registerInstance = function() {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n};\n\n\n/**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\nIntersectionObserver.prototype._unregisterInstance = function() {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n};\n\n\n/**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\nfunction now() {\n return window.performance && performance.now && performance.now();\n}\n\n\n/**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\nfunction throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function() {\n fn();\n timer = null;\n }, timeout);\n }\n };\n}\n\n\n/**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\nfunction addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\nfunction removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.detachEvent == 'function') {\n node.detachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object|?ClientRect} The intersection rect or undefined if no\n * intersection is found.\n */\nfunction computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n\n return (width >= 0 && height >= 0) && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n } || null;\n}\n\n\n/**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {DOMRect|ClientRect} The (possibly shimmed) rect of the element.\n */\nfunction getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect();\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n return rect;\n}\n\n\n/**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {ClientRect} The empty rect.\n */\nfunction getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n}\n\n\n/**\n * Ensure that the result has all of the necessary fields of the DOMRect.\n * Specifically this ensures that `x` and `y` fields are set.\n *\n * @param {?DOMRect|?ClientRect} rect\n * @return {?DOMRect}\n */\nfunction ensureDOMRect(rect) {\n // A `DOMRect` object has `x` and `y` fields.\n if (!rect || 'x' in rect) {\n return rect;\n }\n // A IE's `ClientRect` type does not have `x` and `y`. The same is the case\n // for internally calculated Rect objects. For the purposes of\n // `IntersectionObserver`, it's sufficient to simply mirror `left` and `top`\n // for these fields.\n return {\n top: rect.top,\n y: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n right: rect.right,\n width: rect.width,\n height: rect.height\n };\n}\n\n\n/**\n * Inverts the intersection and bounding rect from the parent (frame) BCR to\n * the local BCR space.\n * @param {DOMRect|ClientRect} parentBoundingRect The parent's bound client rect.\n * @param {DOMRect|ClientRect} parentIntersectionRect The parent's own intersection rect.\n * @return {ClientRect} The local root bounding rect for the parent's children.\n */\nfunction convertFromParentRect(parentBoundingRect, parentIntersectionRect) {\n var top = parentIntersectionRect.top - parentBoundingRect.top;\n var left = parentIntersectionRect.left - parentBoundingRect.left;\n return {\n top: top,\n left: left,\n height: parentIntersectionRect.height,\n width: parentIntersectionRect.width,\n bottom: top + parentIntersectionRect.height,\n right: left + parentIntersectionRect.width\n };\n}\n\n\n/**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\nfunction containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n}\n\n\n/**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\nfunction getParentNode(node) {\n var parent = node.parentNode;\n\n if (node.nodeType == /* DOCUMENT */ 9 && node != document) {\n // If this node is a document node, look for the embedding frame.\n return getFrameElement(node);\n }\n\n // If the parent has element that is assigned through shadow root slot\n if (parent && parent.assignedSlot) {\n parent = parent.assignedSlot.parentNode\n }\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n\n return parent;\n}\n\n/**\n * Returns true if `node` is a Document.\n * @param {!Node} node\n * @returns {boolean}\n */\nfunction isDoc(node) {\n return node && node.nodeType === 9;\n}\n\n\n// Exposes the constructors globally.\nwindow.IntersectionObserver = IntersectionObserver;\nwindow.IntersectionObserverEntry = IntersectionObserverEntry;\n\n}());\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","'use strict'\n\nvar visit = require('unist-util-visit')\n\nmodule.exports = getDefinitionFactory\n\nvar own = {}.hasOwnProperty\n\n// Get a definition in `node` by `identifier`.\nfunction getDefinitionFactory(node, options) {\n return getterFactory(gather(node, options))\n}\n\n// Gather all definitions in `node`\nfunction gather(node) {\n var cache = {}\n\n if (!node || !node.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(node, 'definition', ondefinition)\n\n return cache\n\n function ondefinition(definition) {\n var id = normalise(definition.identifier)\n if (!own.call(cache, id)) {\n cache[id] = definition\n }\n }\n}\n\n// Factory to get a node from the given definition-cache.\nfunction getterFactory(cache) {\n return getter\n\n // Get a node from the bound definition-cache.\n function getter(identifier) {\n var id = identifier && normalise(identifier)\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\nfunction normalise(identifier) {\n return identifier.toUpperCase()\n}\n","'use strict'\n\nmodule.exports = fromMarkdown\n\n// These three are compiled away in the `dist/`\n\nvar toString = require('mdast-util-to-string')\nvar assign = require('micromark/dist/constant/assign')\nvar own = require('micromark/dist/constant/has-own-property')\nvar normalizeIdentifier = require('micromark/dist/util/normalize-identifier')\nvar safeFromInt = require('micromark/dist/util/safe-from-int')\nvar parser = require('micromark/dist/parse')\nvar preprocessor = require('micromark/dist/preprocess')\nvar postprocess = require('micromark/dist/postprocess')\nvar decode = require('parse-entities/decode-entity')\nvar stringifyPosition = require('unist-util-stringify-position')\n\nfunction fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parser(options).document().write(preprocessor()(value, encoding, true))\n )\n )\n}\n\n// Note this compiler only understand complete buffering, not streaming.\nfunction compiler(options) {\n var settings = options || {}\n var config = configure(\n {\n transforms: [],\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\n\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n },\n\n settings.mdastExtensions || []\n )\n\n var data = {}\n\n return compile\n\n function compile(events) {\n var tree = {type: 'root', children: []}\n var stack = [tree]\n var tokenStack = []\n var listStack = []\n var index = -1\n var handler\n var listStart\n\n var context = {\n stack: stack,\n tokenStack: tokenStack,\n config: config,\n enter: enter,\n exit: exit,\n buffer: buffer,\n resume: resume,\n setData: setData,\n getData: getData\n }\n\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n listStart = listStack.pop(index)\n index = prepareList(events, listStart, index)\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n assign({sliceSerialize: events[index][2].sliceSerialize}, context),\n events[index][1]\n )\n }\n }\n\n if (tokenStack.length) {\n throw new Error(\n 'Cannot close document, a token (`' +\n tokenStack[tokenStack.length - 1].type +\n '`, ' +\n stringifyPosition({\n start: tokenStack[tokenStack.length - 1].start,\n end: tokenStack[tokenStack.length - 1].end\n }) +\n ') is still open'\n )\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length ? events[0][1].start : {line: 1, column: 1, offset: 0}\n ),\n\n end: point(\n events.length\n ? events[events.length - 2][1].end\n : {line: 1, column: 1, offset: 0}\n )\n }\n\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n\n return tree\n }\n\n function prepareList(events, start, length) {\n var index = start - 1\n var containerBalance = -1\n var listSpread = false\n var listItem\n var tailIndex\n var lineIndex\n var tailEvent\n var event\n var firstBlankLineIndex\n var atMarker\n\n while (++index <= length) {\n event = events[index]\n\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = point(\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: point(event[1].start)\n }\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n\n events[start][1]._spread = listSpread\n return length\n }\n\n function setData(key, value) {\n data[key] = value\n }\n\n function getData(key) {\n return data[key]\n }\n\n function point(d) {\n return {line: d.line, column: d.column, offset: d.offset}\n }\n\n function opener(create, and) {\n return open\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n function buffer() {\n this.stack.push({type: 'fragment', children: []})\n }\n\n function enter(node, token) {\n this.stack[this.stack.length - 1].children.push(node)\n this.stack.push(node)\n this.tokenStack.push(token)\n node.position = {start: point(token.start)}\n return node\n }\n\n function closer(and) {\n return close\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n function exit(token) {\n var node = this.stack.pop()\n var open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): it’s not open'\n )\n } else if (open.type !== token.type) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): a different token (`' +\n open.type +\n '`, ' +\n stringifyPosition({start: open.start, end: open.end}) +\n ') is open'\n )\n }\n\n node.position.end = point(token.end)\n return node\n }\n\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n this.stack[this.stack.length - 2].start = parseInt(\n this.sliceSerialize(token),\n 10\n )\n\n setData('expectingFirstListItemValue')\n }\n }\n\n function onexitcodefencedfenceinfo() {\n var data = this.resume()\n this.stack[this.stack.length - 1].lang = data\n }\n\n function onexitcodefencedfencemeta() {\n var data = this.resume()\n this.stack[this.stack.length - 1].meta = data\n }\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n function onexitcodefenced() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data.replace(\n /^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g,\n ''\n )\n\n setData('flowCodeInside')\n }\n\n function onexitcodeindented() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitdefinitiontitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitdefinitiondestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitatxheadingsequence(token) {\n if (!this.stack[this.stack.length - 1].depth) {\n this.stack[this.stack.length - 1].depth = this.sliceSerialize(\n token\n ).length\n }\n }\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n function onexitsetextheadinglinesequence(token) {\n this.stack[this.stack.length - 1].depth =\n this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n function onenterdata(token) {\n var siblings = this.stack[this.stack.length - 1].children\n var tail = siblings[siblings.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {start: point(token.start)}\n this.stack[this.stack.length - 1].children.push(tail)\n }\n\n this.stack.push(tail)\n }\n\n function onexitdata(token) {\n var tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n function onexitlineending(token) {\n var context = this.stack[this.stack.length - 1]\n\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n context.children[context.children.length - 1].position.end = point(\n token.end\n )\n\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.indexOf(context.type) > -1\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n function onexithtmlflow() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexithtmltext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitcodetext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitlink() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitimage() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitlabeltext(token) {\n this.stack[this.stack.length - 2].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitlabel() {\n var fragment = this.stack[this.stack.length - 1]\n var value = this.resume()\n\n this.stack[this.stack.length - 1].label = value\n\n // Assume a reference.\n setData('inReference', true)\n\n if (this.stack[this.stack.length - 1].type === 'link') {\n this.stack[this.stack.length - 1].children = fragment.children\n } else {\n this.stack[this.stack.length - 1].alt = value\n }\n }\n\n function onexitresourcedestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitresourcetitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitresource() {\n setData('inReference')\n }\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n function onexitreferencestring(token) {\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n function onexitcharacterreferencevalue(token) {\n var data = this.sliceSerialize(token)\n var type = getData('characterReferenceType')\n var value\n var tail\n\n if (type) {\n value = safeFromInt(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n\n setData('characterReferenceType')\n } else {\n value = decode(data)\n }\n\n tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url = this.sliceSerialize(token)\n }\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url =\n 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n function blockQuote() {\n return {type: 'blockquote', children: []}\n }\n\n function codeFlow() {\n return {type: 'code', lang: null, meta: null, value: ''}\n }\n\n function codeText() {\n return {type: 'inlineCode', value: ''}\n }\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n function emphasis() {\n return {type: 'emphasis', children: []}\n }\n\n function heading() {\n return {type: 'heading', depth: undefined, children: []}\n }\n\n function hardBreak() {\n return {type: 'break'}\n }\n\n function html() {\n return {type: 'html', value: ''}\n }\n\n function image() {\n return {type: 'image', title: null, url: '', alt: null}\n }\n\n function link() {\n return {type: 'link', title: null, url: '', children: []}\n }\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n function paragraph() {\n return {type: 'paragraph', children: []}\n }\n\n function strong() {\n return {type: 'strong', children: []}\n }\n\n function text() {\n return {type: 'text', value: ''}\n }\n\n function thematicBreak() {\n return {type: 'thematicBreak'}\n }\n}\n\nfunction configure(config, extensions) {\n var index = -1\n\n while (++index < extensions.length) {\n extension(config, extensions[index])\n }\n\n return config\n}\n\nfunction extension(config, extension) {\n var key\n var left\n\n for (key in extension) {\n left = own.call(config, key) ? config[key] : (config[key] = {})\n\n if (key === 'canContainEols' || key === 'transforms') {\n config[key] = [].concat(left, extension[key])\n } else {\n Object.assign(left, extension[key])\n }\n }\n}\n","'use strict'\n\nmodule.exports = require('./dist')\n","'use strict'\n\nmodule.exports = toString\n\n// Get the text content of a node.\n// Prefer the node’s plain-text fields, otherwise serialize its children,\n// and if the given value is an array, serialize the nodes in it.\nfunction toString(node) {\n return (\n (node &&\n (node.value ||\n node.alt ||\n node.title ||\n ('children' in node && all(node.children)) ||\n ('length' in node && all(node)))) ||\n ''\n )\n}\n\nfunction all(values) {\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = toString(values[index])\n }\n\n return result.join('')\n}\n","\n'use strict';\n\n\nvar encodeCache = {};\n\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) { return cache; }\n\n cache = encodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache;\n}\n\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache,\n result = '';\n\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n cache = getEncodeCache(exclude);\n\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue;\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result;\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\n\n\nmodule.exports = encode;\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlpha = regexCheck(/[A-Za-z]/)\n\nmodule.exports = asciiAlpha\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\nmodule.exports = asciiAlphanumeric\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\nmodule.exports = asciiAtext\n","'use strict'\n\n// Note: EOF is seen as ASCII control here, because `null < 32 == true`.\nfunction asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code < 32 || code === 127\n )\n}\n\nmodule.exports = asciiControl\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiDigit = regexCheck(/\\d/)\n\nmodule.exports = asciiDigit\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\nmodule.exports = asciiHexDigit\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\nmodule.exports = asciiPunctuation\n","'use strict'\n\nfunction markdownLineEndingOrSpace(code) {\n return code < 0 || code === 32\n}\n\nmodule.exports = markdownLineEndingOrSpace\n","'use strict'\n\nfunction markdownLineEnding(code) {\n return code < -2\n}\n\nmodule.exports = markdownLineEnding\n","'use strict'\n\nfunction markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\nmodule.exports = markdownSpace\n","'use strict'\n\nvar unicodePunctuationRegex = require('../constant/unicode-punctuation-regex.js')\nvar regexCheck = require('../util/regex-check.js')\n\n// In fact adds to the bundle size.\n\nvar unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar unicodeWhitespace = regexCheck(/\\s/)\n\nmodule.exports = unicodeWhitespace\n","'use strict'\n\nvar assign = Object.assign\n\nmodule.exports = assign\n","'use strict'\n\nvar fromCharCode = String.fromCharCode\n\nmodule.exports = fromCharCode\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = own\n","'use strict'\n\n// This module is copied from .\nvar basics = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'source',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\nmodule.exports = basics\n","'use strict'\n\n// This module is copied from .\nvar raws = ['pre', 'script', 'style', 'textarea']\n\nmodule.exports = raws\n","'use strict'\n\nvar splice = [].splice\n\nmodule.exports = splice\n","'use strict'\n\n// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nvar unicodePunctuation = /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar text$1 = require('./initialize/text.js')\nvar attention = require('./tokenize/attention.js')\nvar autolink = require('./tokenize/autolink.js')\nvar blockQuote = require('./tokenize/block-quote.js')\nvar characterEscape = require('./tokenize/character-escape.js')\nvar characterReference = require('./tokenize/character-reference.js')\nvar codeFenced = require('./tokenize/code-fenced.js')\nvar codeIndented = require('./tokenize/code-indented.js')\nvar codeText = require('./tokenize/code-text.js')\nvar definition = require('./tokenize/definition.js')\nvar hardBreakEscape = require('./tokenize/hard-break-escape.js')\nvar headingAtx = require('./tokenize/heading-atx.js')\nvar htmlFlow = require('./tokenize/html-flow.js')\nvar htmlText = require('./tokenize/html-text.js')\nvar labelEnd = require('./tokenize/label-end.js')\nvar labelStartImage = require('./tokenize/label-start-image.js')\nvar labelStartLink = require('./tokenize/label-start-link.js')\nvar lineEnding = require('./tokenize/line-ending.js')\nvar list = require('./tokenize/list.js')\nvar setextUnderline = require('./tokenize/setext-underline.js')\nvar thematicBreak = require('./tokenize/thematic-break.js')\n\nvar document = {\n 42: list,\n // Asterisk\n 43: list,\n // Plus sign\n 45: list,\n // Dash\n 48: list,\n // 0\n 49: list,\n // 1\n 50: list,\n // 2\n 51: list,\n // 3\n 52: list,\n // 4\n 53: list,\n // 5\n 54: list,\n // 6\n 55: list,\n // 7\n 56: list,\n // 8\n 57: list,\n // 9\n 62: blockQuote // Greater than\n}\nvar contentInitial = {\n 91: definition // Left square bracket\n}\nvar flowInitial = {\n '-2': codeIndented,\n // Horizontal tab\n '-1': codeIndented,\n // Virtual space\n 32: codeIndented // Space\n}\nvar flow = {\n 35: headingAtx,\n // Number sign\n 42: thematicBreak,\n // Asterisk\n 45: [setextUnderline, thematicBreak],\n // Dash\n 60: htmlFlow,\n // Less than\n 61: setextUnderline,\n // Equals to\n 95: thematicBreak,\n // Underscore\n 96: codeFenced,\n // Grave accent\n 126: codeFenced // Tilde\n}\nvar string = {\n 38: characterReference,\n // Ampersand\n 92: characterEscape // Backslash\n}\nvar text = {\n '-5': lineEnding,\n // Carriage return\n '-4': lineEnding,\n // Line feed\n '-3': lineEnding,\n // Carriage return + line feed\n 33: labelStartImage,\n // Exclamation mark\n 38: characterReference,\n // Ampersand\n 42: attention,\n // Asterisk\n 60: [autolink, htmlText],\n // Less than\n 91: labelStartLink,\n // Left square bracket\n 92: [hardBreakEscape, characterEscape],\n // Backslash\n 93: labelEnd,\n // Right square bracket\n 95: attention,\n // Underscore\n 96: codeText // Grave accent\n}\nvar insideSpan = {\n null: [attention, text$1.resolver]\n}\nvar disable = {\n null: []\n}\n\nexports.contentInitial = contentInitial\nexports.disable = disable\nexports.document = document\nexports.flow = flow\nexports.flowInitial = flowInitial\nexports.insideSpan = insideSpan\nexports.string = string\nexports.text = text\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\n\nvar tokenize = initializeContent\n\nfunction initializeContent(effects) {\n var contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n var previous\n return contentStart\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n function lineStart(code) {\n var token = effects.enter('chunkText', {\n contentType: 'text',\n previous: previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeDocument\nvar containerConstruct = {\n tokenize: tokenizeContainer\n}\nvar lazyFlowConstruct = {\n tokenize: tokenizeLazyFlow\n}\n\nfunction initializeDocument(effects) {\n var self = this\n var stack = []\n var continued = 0\n var inspectConstruct = {\n tokenize: tokenizeInspect,\n partial: true\n }\n var inspectResult\n var childFlow\n var childToken\n return start\n\n function start(code) {\n if (continued < stack.length) {\n self.containerState = stack[continued][1]\n return effects.attempt(\n stack[continued][0].continuation,\n documentContinue,\n documentContinued\n )(code)\n }\n\n return documentContinued(code)\n }\n\n function documentContinue(code) {\n continued++\n return start(code)\n }\n\n function documentContinued(code) {\n // If we’re in a concrete construct (such as when expecting another line of\n // HTML, or we resulted in lazy content), we can immediately start flow.\n if (inspectResult && inspectResult.flowContinue) {\n return flowStart(code)\n }\n\n self.interrupt =\n childFlow &&\n childFlow.currentConstruct &&\n childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n function containerContinue(code) {\n stack.push([self.currentConstruct, self.containerState])\n self.containerState = undefined\n return documentContinued(code)\n }\n\n function flowStart(code) {\n if (code === null) {\n exitContainers(0, true)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n function flowContinue(code) {\n if (code === null) {\n continueFlow(effects.exit('chunkFlow'))\n return flowStart(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n continueFlow(effects.exit('chunkFlow'))\n return effects.check(inspectConstruct, documentAfterPeek)\n }\n\n effects.consume(code)\n return flowContinue\n }\n\n function documentAfterPeek(code) {\n exitContainers(\n inspectResult.continued,\n inspectResult && inspectResult.flowEnd\n )\n continued = 0\n return start(code)\n }\n\n function continueFlow(token) {\n if (childToken) childToken.next = token\n childToken = token\n childFlow.lazy = inspectResult && inspectResult.lazy\n childFlow.defineSkip(token.start)\n childFlow.write(self.sliceStream(token))\n }\n\n function exitContainers(size, end) {\n var index = stack.length // Close the flow.\n\n if (childFlow && end) {\n childFlow.write([null])\n childToken = childFlow = undefined\n } // Exit open containers.\n\n while (index-- > size) {\n self.containerState = stack[index][1]\n stack[index][0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function tokenizeInspect(effects, ok) {\n var subcontinued = 0\n inspectResult = {}\n return inspectStart\n\n function inspectStart(code) {\n if (subcontinued < stack.length) {\n self.containerState = stack[subcontinued][1]\n return effects.attempt(\n stack[subcontinued][0].continuation,\n inspectContinue,\n inspectLess\n )(code)\n } // If we’re continued but in a concrete flow, we can’t have more\n // containers.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n inspectResult.flowContinue = true\n return inspectDone(code)\n }\n\n self.interrupt =\n childFlow.currentConstruct && childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd,\n inspectDone\n )(code)\n }\n\n function inspectContinue(code) {\n subcontinued++\n return self.containerState._closeFlow\n ? inspectFlowEnd(code)\n : inspectStart(code)\n }\n\n function inspectLess(code) {\n if (childFlow.currentConstruct && childFlow.currentConstruct.lazy) {\n // Maybe another container?\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd, // Maybe flow, or a blank line?\n effects.attempt(\n lazyFlowConstruct,\n inspectFlowEnd,\n effects.check(partialBlankLine, inspectFlowEnd, inspectLazy)\n )\n )(code)\n } // Otherwise we’re interrupting.\n\n return inspectFlowEnd(code)\n }\n\n function inspectLazy(code) {\n // Act as if all containers are continued.\n subcontinued = stack.length\n inspectResult.lazy = true\n inspectResult.flowContinue = true\n return inspectDone(code)\n } // We’re done with flow if we have more containers, or an interruption.\n\n function inspectFlowEnd(code) {\n inspectResult.flowEnd = true\n return inspectDone(code)\n }\n\n function inspectDone(code) {\n inspectResult.continued = subcontinued\n self.interrupt = self.containerState = undefined\n return ok(code)\n }\n }\n}\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction tokenizeLazyFlow(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.lazy(this.parser.constructs.flow, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar content = require('../tokenize/content.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeFlow\n\nfunction initializeFlow(effects) {\n var self = this\n var initial = effects.attempt(\n // Try to parse a blank line.\n partialBlankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar assign = require('../constant/assign.js')\nvar shallow = require('../util/shallow.js')\n\nvar text = initializeFactory('text')\nvar string = initializeFactory('string')\nvar resolver = {\n resolveAll: createResolver()\n}\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n function initializeText(effects) {\n var self = this\n var constructs = this.parser.constructs[field]\n var text = effects.attempt(constructs, start, notText)\n return start\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function atBreak(code) {\n var list = constructs[code]\n var index = -1\n\n if (code === null) {\n return true\n }\n\n if (list) {\n while (++index < list.length) {\n if (\n !list[index].previous ||\n list[index].previous.call(self, self.previous)\n ) {\n return true\n }\n }\n }\n }\n }\n}\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n function resolveAllText(events, context) {\n var index = -1\n var enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n} // A rather ugly set of instructions which again looks at chunks in the input\n// stream.\n// The reason to do this here is that it is *much* faster to parse in reverse.\n// And that we can’t hook into `null` to split the line suffix before an EOF.\n// To do: figure out if we can make this into a clean utility, or even in core.\n// As it will be useful for GFMs literal autolink extension (and maybe even\n// tables?)\n\nfunction resolveAllLineSuffixes(events, context) {\n var eventIndex = -1\n var chunks\n var data\n var chunk\n var index\n var bufferIndex\n var size\n var tabs\n var token\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n data = events[eventIndex - 1][1]\n chunks = context.sliceStream(data)\n index = chunks.length\n bufferIndex = -1\n size = 0\n tabs = undefined\n\n while (index--) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1);\n else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: shallow(data.end)\n }\n data.end = shallow(token.start)\n\n if (data.start.offset === data.end.offset) {\n assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n\nexports.resolver = resolver\nexports.string = string\nexports.text = text\n","'use strict'\n\nvar content = require('./initialize/content.js')\nvar document = require('./initialize/document.js')\nvar flow = require('./initialize/flow.js')\nvar text = require('./initialize/text.js')\nvar combineExtensions = require('./util/combine-extensions.js')\nvar createTokenizer = require('./util/create-tokenizer.js')\nvar miniflat = require('./util/miniflat.js')\nvar constructs = require('./constructs.js')\n\nfunction parse(options) {\n var settings = options || {}\n var parser = {\n defined: [],\n constructs: combineExtensions(\n [constructs].concat(miniflat(settings.extensions))\n ),\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(text.string),\n text: create(text.text)\n }\n return parser\n\n function create(initializer) {\n return creator\n\n function creator(from) {\n return createTokenizer(parser, initializer, from)\n }\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nvar subtokenize = require('./util/subtokenize.js')\n\nfunction postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n\nmodule.exports = postprocess\n","'use strict'\n\nvar search = /[\\0\\t\\n\\r]/g\n\nfunction preprocess() {\n var start = true\n var column = 1\n var buffer = ''\n var atCarriageReturn\n return preprocessor\n\n function preprocessor(value, encoding, end) {\n var chunks = []\n var match\n var next\n var startPosition\n var endPosition\n var code\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition = match ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n if (code === 0) {\n chunks.push(65533)\n column++\n } else if (code === 9) {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n } else if (code === 10) {\n chunks.push(-4)\n column = 1\n } // Must be carriage return.\n else {\n atCarriageReturn = true\n column = 1\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n\nmodule.exports = preprocess\n","'use strict'\n\nvar chunkedPush = require('../util/chunked-push.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar classifyCharacter = require('../util/classify-character.js')\nvar movePoint = require('../util/move-point.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar shallow = require('../util/shallow.js')\n\nvar attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\nfunction resolveAllAttention(events, context) {\n var index = -1\n var open\n var group\n var text\n var openingSequence\n var closingSequence\n var use\n var nextEvents\n var offset // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: movePoint(shallow(events[open][1].end), -use),\n end: shallow(events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: shallow(events[index][1].start),\n end: movePoint(shallow(events[index][1].start), use)\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: shallow(events[open][1].end),\n end: shallow(events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: shallow(openingSequence.start),\n end: shallow(closingSequence.end)\n }\n events[open][1].end = shallow(openingSequence.start)\n events[index][1].start = shallow(closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = chunkedPush(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = chunkedPush(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = chunkedPush(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n chunkedSplice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n\nfunction tokenizeAttention(effects, ok) {\n var before = classifyCharacter(this.previous)\n var marker\n return start\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n\n function sequence(code) {\n var token\n var after\n var open\n var close\n\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n token = effects.exit('attentionSequence')\n after = classifyCharacter(code)\n open = !after || (after === 2 && before)\n close = !before || (before === 2 && after)\n token._open = marker === 42 ? open : open && (before || !close)\n token._close = marker === 42 ? close : close && (after || !open)\n return ok(code)\n }\n}\n\nmodule.exports = attention\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiAtext = require('../character/ascii-atext.js')\nvar asciiControl = require('../character/ascii-control.js')\n\nvar autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\nfunction tokenizeAutolink(effects, ok, nok) {\n var size = 1\n return start\n\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n\nmodule.exports = autolink\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit: exit\n}\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n if (code === 62) {\n if (!self.containerState.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n self.containerState.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n\nmodule.exports = blockQuote\n","'use strict'\n\nvar asciiPunctuation = require('../character/ascii-punctuation.js')\n\nvar characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return open\n }\n\n function open(code) {\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterEscape\n","'use strict'\n\nvar decodeEntity = require('parse-entities/decode-entity.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiDigit = require('../character/ascii-digit.js')\nvar asciiHexDigit = require('../character/ascii-hex-digit.js')\n\nfunction _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {default: e}\n}\n\nvar decodeEntity__default = /*#__PURE__*/ _interopDefaultLegacy(decodeEntity)\n\nvar characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n var self = this\n var size = 0\n var max\n var test\n return start\n\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n function value(code) {\n var token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeEntity__default['default'](self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterReference\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar factorySpace = require('./factory-space.js')\n\nvar codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n var self = this\n var closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n var initialPrefix = prefixSize(this.events, 'linePrefix')\n var sizeOpen = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : content(code)\n }\n\n function content(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(effects, content, 'linePrefix', initialPrefix + 1)\n : content\n )\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return content(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n function tokenizeClosingFence(effects, ok, nok) {\n var size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n\nmodule.exports = codeFenced\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar factorySpace = require('./factory-space.js')\n\nvar codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented,\n resolve: resolveCodeIndented\n}\nvar indentedContentConstruct = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n\nfunction resolveCodeIndented(events, context) {\n var code = {\n type: 'codeIndented',\n start: events[0][1].start,\n end: events[events.length - 1][1].end\n }\n chunkedSplice(events, 0, 0, [['enter', code, context]])\n chunkedSplice(events, events.length, 0, [['exit', code, context]])\n return events\n}\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n return effects.attempt(indentedContentConstruct, afterPrefix, nok)\n\n function afterPrefix(code) {\n if (code === null) {\n return ok(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContentConstruct, afterPrefix, ok)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n}\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n var self = this\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n\n function afterPrefix(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n }\n\n return prefixSize(self.events, 'linePrefix') < 4 ? nok(code) : ok(code)\n }\n}\n\nmodule.exports = codeIndented\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous: previous\n}\n\nfunction resolveCodeText(events) {\n var tailExitIndex = events.length - 4\n var headEnterIndex = 3\n var index\n var enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[tailExitIndex][1].type = events[headEnterIndex][1].type =\n 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return events\n}\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\nfunction tokenizeCodeText(effects, ok, nok) {\n var sizeOpen = 0\n var size\n var token\n return start\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs don’t work, and virtual spaces don’t make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n\nmodule.exports = codeText\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar subtokenize = require('../util/subtokenize.js')\nvar factorySpace = require('./factory-space.js')\n\n// No name because it must not be turned off.\nvar content = {\n tokenize: tokenizeContent,\n resolve: resolveContent,\n interruptible: true,\n lazy: true\n}\nvar continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n} // Content is transparent: it’s parsed right now. That way, definitions are also\n// parsed right now: before text in paragraphs (specifically, media) are parsed.\n\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\nfunction tokenizeContent(effects, ok) {\n var previous\n return start\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous = previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous: previous\n })\n return data\n }\n}\n\nfunction tokenizeContinuation(effects, ok, nok) {\n var self = this\n return startLookahead\n\n function startLookahead(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1 ||\n prefixSize(self.events, 'linePrefix') < 4\n ) {\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = content\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factorySpace = require('./factory-space.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\nvar factoryTitle = require('./factory-title.js')\n\nvar definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\nvar titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n\nfunction tokenizeDefinition(effects, ok, nok) {\n var self = this\n var identifier\n return start\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (self.parser.defined.indexOf(identifier) < 0) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = definition\n","'use strict'\n\nvar asciiControl = require('../character/ascii-control.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\n// eslint-disable-next-line max-params\nfunction destinationFactory(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n var limit = max || Infinity\n var balance = 0\n return start\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (asciiControl(code) || code === 41) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n\nmodule.exports = destinationFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\n\n// eslint-disable-next-line max-params\nfunction labelFactory(effects, ok, nok, type, markerType, stringType) {\n var self = this\n var size = 0\n var data\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* c8 ignore next */\n (code === 94 &&\n /* c8 ignore next */\n !size &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\n }\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n}\n\nmodule.exports = labelFactory\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\n\nfunction spaceFactory(effects, ok, type, max) {\n var limit = max ? max - 1 : Infinity\n var size = 0\n return start\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n\nmodule.exports = spaceFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction titleFactory(effects, ok, nok, type, markerType, stringType) {\n var marker\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines can’t exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n\nmodule.exports = titleFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction whitespaceFactory(effects, ok) {\n var seen\n return start\n\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = whitespaceFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = hardBreakEscape\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar factorySpace = require('./factory-space.js')\n\nvar headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\nfunction resolveHeadingAtx(events, context) {\n var contentEnd = events.length - 2\n var contentStart = 3\n var content\n var text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n chunkedSplice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n var self = this\n var size = 0\n return start\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n\nmodule.exports = headingAtx\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar fromCharCode = require('../constant/from-char-code.js')\nvar htmlBlockNames = require('../constant/html-block-names.js')\nvar htmlRawNames = require('../constant/html-raw-names.js')\nvar partialBlankLine = require('./partial-blank-line.js')\n\nvar htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\nvar nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n\nfunction resolveToHtmlFlow(events) {\n var index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n var self = this\n var kind\n var startTag\n var buffer\n var index\n var marker\n return start\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.indexOf(buffer.toLowerCase()) > -1\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.indexOf(buffer.toLowerCase()) > -1) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting.\n\n return self.interrupt\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = undefined\n return completeAttributeValueUnquoted(code)\n }\n\n function completeAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return htmlContinueStart\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.indexOf(buffer.toLowerCase()) > -1) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n return continuation(code)\n }\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(partialBlankLine, ok, nok)\n }\n}\n\nmodule.exports = htmlFlow\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n var self = this\n var marker\n var buffer\n var index\n var returnState\n return start\n\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We can’t have blank lines in content, so no need to worry about empty\n // tokens.\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n }\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = htmlText\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar chunkedPush = require('../util/chunked-push.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar shallow = require('../util/shallow.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factoryTitle = require('./factory-title.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\n\nvar labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\nvar resourceConstruct = {\n tokenize: tokenizeResource\n}\nvar fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\nvar collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n\nfunction resolveAllLabelEnd(events) {\n var index = -1\n var token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n !token._used &&\n (token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd')\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n\nfunction resolveToLabelEnd(events, context) {\n var index = events.length\n var offset = 0\n var group\n var label\n var text\n var token\n var open\n var close\n var media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we can’t have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: shallow(events[open][1].start),\n end: shallow(events[events.length - 1][1].end)\n }\n label = {\n type: 'label',\n start: shallow(events[open][1].start),\n end: shallow(events[close][1].end)\n }\n text = {\n type: 'labelText',\n start: shallow(events[open + offset + 2][1].end),\n end: shallow(events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = chunkedPush(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = chunkedPush(media, [['enter', text, context]]) // Between.\n\n media = chunkedPush(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = chunkedPush(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = chunkedPush(media, events.slice(close + 1)) // Media close.\n\n media = chunkedPush(media, [['exit', group, context]])\n chunkedSplice(events, open, events.length, media)\n return events\n}\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var labelStart\n var defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // It’s a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined =\n self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n ) > -1\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 3\n )(code)\n }\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n\n function end(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeFullReference(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n function afterLabel(code) {\n return self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n ) < 0\n ? nok(code)\n : ok(code)\n }\n}\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n\n function open(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = labelEnd\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartImage\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartLink\n","'use strict'\n\nvar factorySpace = require('./factory-space.js')\n\nvar lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n\nmodule.exports = lineEnding\n","'use strict'\n\nvar asciiDigit = require('../character/ascii-digit.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar sizeChunks = require('../util/size-chunks.js')\nvar factorySpace = require('./factory-space.js')\nvar partialBlankLine = require('./partial-blank-line.js')\nvar thematicBreak = require('./thematic-break.js')\n\nvar list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\nvar listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\nvar indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\nfunction tokenizeListStart(effects, ok, nok) {\n var self = this\n var initialSize = prefixSize(self.events, 'linePrefix')\n var size = 0\n return start\n\n function start(code) {\n var kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n partialBlankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize + sizeChunks(self.sliceStream(effects.exit('listItemPrefix')))\n return ok(code)\n }\n}\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n var self = this\n self.containerState._closeFlow = undefined\n return effects.check(partialBlankLine, onBlank, notBlank)\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine // We have a blank line.\n // Still, try to consume at most the items size.\n\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )(code)\n }\n}\n\nfunction tokenizeIndent(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n function afterPrefix(code) {\n return prefixSize(self.events, 'listItemIndent') ===\n self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4 + 1\n )\n\n function afterPrefix(code) {\n return markdownSpace(code) ||\n !prefixSize(self.events, 'listItemPrefixWhitespace')\n ? nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = list\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nvar partialBlankLine = {\n tokenize: tokenizePartialBlankLine,\n partial: true\n}\n\nfunction tokenizePartialBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = partialBlankLine\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar shallow = require('../util/shallow.js')\nvar factorySpace = require('./factory-space.js')\n\nvar setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\nfunction resolveToSetextUnderline(events, context) {\n var index = events.length\n var content\n var text\n var definition\n var heading // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n heading = {\n type: 'setextHeading',\n start: shallow(events[text][1].start),\n end: shallow(events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = shallow(events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var marker\n var paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!self.lazy && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = setextUnderline\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n var size = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n\nmodule.exports = thematicBreak\n","'use strict'\n\nvar chunkedSplice = require('./chunked-splice.js')\n\nfunction chunkedPush(list, items) {\n if (list.length) {\n chunkedSplice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n\nmodule.exports = chunkedPush\n","'use strict'\n\nvar splice = require('../constant/splice.js')\n\n// causes a stack overflow in V8 when trying to insert 100k items for instance.\n\nfunction chunkedSplice(list, start, remove, items) {\n var end = list.length\n var chunkStart = 0\n var parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\nmodule.exports = chunkedSplice\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar unicodePunctuation = require('../character/unicode-punctuation.js')\nvar unicodeWhitespace = require('../character/unicode-whitespace.js')\n\n// Classify whether a character is unicode whitespace, unicode punctuation, or\n// anything else.\n// Used for attention (emphasis, strong), whose sequences can open or close\n// based on the class of surrounding characters.\nfunction classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n\nmodule.exports = classifyCharacter\n","'use strict'\n\nvar hasOwnProperty = require('../constant/has-own-property.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\n\nfunction combineExtensions(extensions) {\n var all = {}\n var index = -1\n\n while (++index < extensions.length) {\n extension(all, extensions[index])\n }\n\n return all\n}\n\nfunction extension(all, extension) {\n var hook\n var left\n var right\n var code\n\n for (hook in extension) {\n left = hasOwnProperty.call(all, hook) ? all[hook] : (all[hook] = {})\n right = extension[hook]\n\n for (code in right) {\n left[code] = constructs(\n miniflat(right[code]),\n hasOwnProperty.call(left, code) ? left[code] : []\n )\n }\n }\n}\n\nfunction constructs(list, existing) {\n var index = -1\n var before = []\n\n while (++index < list.length) {\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n chunkedSplice(existing, 0, 0, before)\n return existing\n}\n\nmodule.exports = combineExtensions\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar chunkedPush = require('./chunked-push.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\nvar resolveAll = require('./resolve-all.js')\nvar serializeChunks = require('./serialize-chunks.js')\nvar shallow = require('./shallow.js')\nvar sliceChunks = require('./slice-chunks.js')\n\n// Create a tokenizer.\n// Tokenizers deal with one type of data (e.g., containers, flow, text).\n// The parser is the object dealing with it all.\n// `initialize` works like other constructs, except that only its `tokenize`\n// function is used, in which case it doesn’t receive an `ok` or `nok`.\n// `from` can be given to set the point before the first character, although\n// when further lines are indented, they must be set with `defineSkip`.\nfunction createTokenizer(parser, initialize, from) {\n var point = from\n ? shallow(from)\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n var columnStart = {}\n var resolveAllConstructs = []\n var chunks = []\n var stack = []\n\n var effects = {\n consume: consume,\n enter: enter,\n exit: exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n }),\n lazy: constructFactory(onsuccessfulcheck, {\n lazy: true\n })\n } // State and tools for resolving and serializing.\n\n var context = {\n previous: null,\n events: [],\n parser: parser,\n sliceStream: sliceStream,\n sliceSerialize: sliceSerialize,\n now: now,\n defineSkip: skip,\n write: write\n } // The state function.\n\n var state = initialize.tokenize.call(context, effects) // Track which character we expect to be consumed, to catch bugs.\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n } // Store where we are in the input stream.\n\n point._index = 0\n point._bufferIndex = -1\n return context\n\n function write(slice) {\n chunks = chunkedPush(chunks, slice)\n main() // Exit if we’re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n function sliceSerialize(token) {\n return serializeChunks(sliceStream(token))\n }\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n function now() {\n return shallow(point)\n }\n\n function skip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n // Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n // `consume`).\n // Here is where we walk through the chunks, which either include strings of\n // several characters, or numerical character codes.\n // The reason to do this in a loop instead of a call is so the stack can\n // drain.\n\n function main() {\n var chunkIndex\n var chunk\n\n while (point._index < chunks.length) {\n chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n } // Deal with one code.\n\n function go(code) {\n state = state(code)\n } // Move a character forward.\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n } // Start a token.\n\n function enter(type, fields) {\n var token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n } // Stop a token.\n\n function exit(type) {\n var token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n } // Use results.\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n } // Discard results.\n\n function onsuccessfulcheck(construct, info) {\n info.restore()\n } // Factory to attempt/check/interrupt.\n\n function constructFactory(onreturn, fields) {\n return hook // Handle either an object mapping codes to constructs, a list of\n // constructs, or a single construct.\n\n function hook(constructs, returnState, bogusState) {\n var listOfConstructs\n var constructIndex\n var currentConstruct\n var info\n return constructs.tokenize || 'length' in constructs\n ? handleListOfConstructs(miniflat(constructs))\n : handleMapOfConstructs\n\n function handleMapOfConstructs(code) {\n if (code in constructs || null in constructs) {\n return handleListOfConstructs(\n constructs.null\n ? /* c8 ignore next */\n miniflat(constructs[code]).concat(miniflat(constructs.null))\n : constructs[code]\n )(code)\n }\n\n return bogusState(code)\n }\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n return handleConstruct(list[constructIndex])\n }\n\n function handleConstruct(construct) {\n return start\n\n function start(code) {\n // To do: not nede to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.indexOf(construct.name) > -1\n ) {\n return nok()\n }\n\n return construct.tokenize.call(\n fields ? assign({}, context, fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n function ok(code) {\n onreturn(currentConstruct, info)\n return returnState\n }\n\n function nok(code) {\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n\n function addResult(construct, from) {\n if (construct.resolveAll && resolveAllConstructs.indexOf(construct) < 0) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n chunkedSplice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n function store() {\n var startPoint = now()\n var startPrevious = context.previous\n var startCurrentConstruct = context.currentConstruct\n var startEventsIndex = context.events.length\n var startStack = Array.from(stack)\n return {\n restore: restore,\n from: startEventsIndex\n }\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\nmodule.exports = createTokenizer\n","'use strict'\n\nfunction miniflat(value) {\n return value === null || value === undefined\n ? []\n : 'length' in value\n ? value\n : [value]\n}\n\nmodule.exports = miniflat\n","'use strict'\n\n// chunks (replacement characters, tabs, or line endings).\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n return point\n}\n\nmodule.exports = movePoint\n","'use strict'\n\nfunction normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no object method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n\nmodule.exports = normalizeIdentifier\n","'use strict'\n\nvar sizeChunks = require('./size-chunks.js')\n\nfunction prefixSize(events, type) {\n var tail = events[events.length - 1]\n if (!tail || tail[1].type !== type) return 0\n return sizeChunks(tail[2].sliceStream(tail[1]))\n}\n\nmodule.exports = prefixSize\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction regexCheck(regex) {\n return check\n\n function check(code) {\n return regex.test(fromCharCode(code))\n }\n}\n\nmodule.exports = regexCheck\n","'use strict'\n\nfunction resolveAll(constructs, events, context) {\n var called = []\n var index = -1\n var resolve\n\n while (++index < constructs.length) {\n resolve = constructs[index].resolveAll\n\n if (resolve && called.indexOf(resolve) < 0) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n\nmodule.exports = resolveAll\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction safeFromInt(value, base) {\n var code = parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return fromCharCode(code)\n}\n\nmodule.exports = safeFromInt\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction serializeChunks(chunks) {\n var index = -1\n var result = []\n var chunk\n var value\n var atTab\n\n while (++index < chunks.length) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n value = chunk\n } else if (chunk === -5) {\n value = '\\r'\n } else if (chunk === -4) {\n value = '\\n'\n } else if (chunk === -3) {\n value = '\\r' + '\\n'\n } else if (chunk === -2) {\n value = '\\t'\n } else if (chunk === -1) {\n if (atTab) continue\n value = ' '\n } else {\n // Currently only replacement character.\n value = fromCharCode(chunk)\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n\nmodule.exports = serializeChunks\n","'use strict'\n\nvar assign = require('../constant/assign.js')\n\nfunction shallow(object) {\n return assign({}, object)\n}\n\nmodule.exports = shallow\n","'use strict'\n\n// Counts tabs based on their expanded size, and CR+LF as one character.\n\nfunction sizeChunks(chunks) {\n var index = -1\n var size = 0\n\n while (++index < chunks.length) {\n size += typeof chunks[index] === 'string' ? chunks[index].length : 1\n }\n\n return size\n}\n\nmodule.exports = sizeChunks\n","'use strict'\n\nfunction sliceChunks(chunks, token) {\n var startIndex = token.start._index\n var startBufferIndex = token.start._bufferIndex\n var endIndex = token.end._index\n var endBufferIndex = token.end._bufferIndex\n var view\n\n if (startIndex === endIndex) {\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n\nmodule.exports = sliceChunks\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar shallow = require('./shallow.js')\n\nfunction subtokenize(events) {\n var jumps = {}\n var index = -1\n var event\n var lineIndex\n var otherIndex\n var otherEvent\n var parameters\n var subevents\n var more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1].isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container || event[1]._movePreviousLineEndings) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = shallow(events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n chunkedSplice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n\nfunction subcontent(events, eventIndex) {\n var token = events[eventIndex][1]\n var context = events[eventIndex][2]\n var startPosition = eventIndex - 1\n var startPositions = []\n var tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n var childEvents = tokenizer.events\n var jumps = []\n var gaps = {}\n var stream\n var previous\n var index\n var entered\n var end\n var adjust // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (token) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== token) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!token._tokenizer) {\n stream = context.sliceStream(token)\n\n if (!token.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(token.start)\n }\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = token\n token = token.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n token = previous\n index = childEvents.length\n\n while (index--) {\n // Make sure we’ve at least seen something (final eol is part of the last\n // token).\n if (childEvents[index][0] === 'enter') {\n entered = true\n } else if (\n // Find a void token that includes a break.\n entered &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n add(childEvents.slice(index + 1, end))\n // Help GC.\n token._tokenizer = token.next = undefined\n token = token.previous\n end = index + 1\n }\n }\n\n // Help GC.\n tokenizer.events = token._tokenizer = token.next = undefined // Do head:\n\n add(childEvents.slice(0, end))\n index = -1\n adjust = 0\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n\n function add(slice) {\n var start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n chunkedSplice(events, start, 2, slice)\n }\n}\n\nmodule.exports = subtokenize\n","'use strict'\n\n/* eslint-env browser */\n\nvar el\n\nvar semicolon = 59 // ';'\n\nmodule.exports = decodeEntity\n\nfunction decodeEntity(characters) {\n var entity = '&' + characters + ';'\n var char\n\n el = el || document.createElement('i')\n el.innerHTML = entity\n char = el.textContent\n\n // Some entities do not require the closing semicolon (`¬` - for instance),\n // which leads to situations where parsing the assumed entity of ¬it; will\n // result in the string `¬it;`. When we encounter a trailing semicolon after\n // parsing and the entity to decode was not a semicolon (`;`), we can\n // assume that the matching was incomplete\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the entity was not valid\n return char === entity ? false : char\n}\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict'\n\nvar normalize = require('./normalize')\nvar DefinedInfo = require('./lib/util/defined-info')\nvar Info = require('./lib/util/info')\n\nvar data = 'data'\n\nmodule.exports = find\n\nvar valid = /^data[-\\w.:]+$/i\nvar dash = /-[a-z]/g\nvar cap = /[A-Z]/g\n\nfunction find(schema, value) {\n var normal = normalize(value)\n var prop = value\n var Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === data && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n prop = datasetToProperty(value)\n } else {\n value = datasetToAttribute(value)\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\nfunction datasetToProperty(attribute) {\n var value = attribute.slice(5).replace(dash, camelcase)\n return data + value.charAt(0).toUpperCase() + value.slice(1)\n}\n\nfunction datasetToAttribute(property) {\n var value = property.slice(4)\n\n if (dash.test(value)) {\n return property\n }\n\n value = value.replace(cap, kebab)\n\n if (value.charAt(0) !== '-') {\n value = '-' + value\n }\n\n return data + value\n}\n\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","'use strict'\n\nvar merge = require('./lib/util/merge')\nvar xlink = require('./lib/xlink')\nvar xml = require('./lib/xml')\nvar xmlns = require('./lib/xmlns')\nvar aria = require('./lib/aria')\nvar html = require('./lib/html')\n\nmodule.exports = merge([xml, xlink, xmlns, aria, html])\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\n\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\n\nmodule.exports = create({\n transform: ariaTransform,\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n\nfunction ariaTransform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n}\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform')\n\nvar boolean = types.boolean\nvar overloadedBoolean = types.overloadedBoolean\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\nvar commaSeparated = types.commaSeparated\n\nmodule.exports = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: commaSeparated,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextMenu: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: commaSeparated,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
`. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
`\n cellSpacing: null, // `
`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
`. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `