{"version":3,"file":"static/js/main.31592f07.js","mappings":"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EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,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AAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,GAAI,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,C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","sources":["../node_modules/@amplitude/ua-parser-js/src/ua-parser.js","../node_modules/@segment/analytics-core/src/callback/index.ts","../node_modules/@segment/analytics-core/src/logger/index.ts","../node_modules/@segment/analytics-core/src/context/index.ts","../node_modules/@segment/analytics-core/src/priority-queue/index.ts","../node_modules/@segment/analytics-core/src/priority-queue/backoff.ts","../node_modules/@segment/analytics-core/src/queue/delivery.ts","../node_modules/@segment/analytics-core/src/stats/index.ts","../node_modules/@segment/analytics-core/src/validation/helpers.ts","../node_modules/@segment/analytics-generic-utils/src/create-deferred/create-deferred.ts","../node_modules/@segment/analytics-generic-utils/src/emitter/emitter.ts","../node_modules/@segment/analytics-next/src/core/connection/index.ts","../node_modules/@segment/analytics-next/src/core/constants/index.ts","../node_modules/@segment/analytics-next/src/core/context/index.ts","../node_modules/@segment/analytics-next/src/core/environment/index.ts","../node_modules/@segment/analytics-next/src/core/query-string/gracefulDecodeURIComponent.ts","../node_modules/@segment/analytics-next/src/core/stats/remote-metrics.ts","../node_modules/@segment/analytics-next/src/core/stats/index.ts","../node_modules/@segment/analytics-next/src/core/stats/metric-helpers.ts","../node_modules/@segment/analytics-next/src/generated/version.ts","../node_modules/unfetch/src/index.mjs","../node_modules/@segment/analytics-next/src/lib/fetch.ts","../node_modules/@segment/analytics-next/src/lib/get-global.ts","../node_modules/@segment/analytics-next/src/lib/global-analytics-helper.ts","../node_modules/@segment/analytics-next/src/lib/load-script.ts","../node_modules/@segment/analytics-next/src/lib/merged-options.ts","../node_modules/@segment/analytics-next/src/lib/p-while.ts","../node_modules/@segment/analytics-next/src/lib/parse-cdn.ts","../node_modules/@segment/analytics-next/src/lib/priority-queue/persisted.ts","../node_modules/@segment/analytics-next/src/lib/to-facade.ts","../node_modules/@segment/analytics-next/src/lib/version-type.ts","../node_modules/@segment/analytics-next/src/plugins/middleware/index.ts","../node_modules/@segment/facade/lib/address.js","../node_modules/@segment/facade/lib/alias.js","../node_modules/@segment/facade/lib/clone.js","../node_modules/@segment/facade/lib/delete.js","../node_modules/@segment/facade/lib/facade.js","../node_modules/@segment/facade/lib/group.js","../node_modules/@segment/facade/lib/identify.js","../node_modules/@segment/facade/lib/index.js","../node_modules/@segment/facade/lib/is-email.js","../node_modules/@segment/facade/lib/is-enabled.js","../node_modules/@segment/facade/lib/page.js","../node_modules/@segment/facade/lib/screen.js","../node_modules/@segment/facade/lib/track.js","../node_modules/@segment/isodate-traverse/lib/index.js","../node_modules/@segment/isodate/lib/index.js","../node_modules/blueimp-md5/js/md5.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/inherits/inherits_browser.js","../node_modules/invariant/browser.js","../node_modules/isarray/index.js","../node_modules/new-date/lib/index.js","../node_modules/new-date/lib/milliseconds.js","../node_modules/new-date/lib/seconds.js","../node_modules/obj-case/index.js","../node_modules/path-to-regexp/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-router/node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/classnames/index.js","../node_modules/@lukeed/uuid/dist/index.mjs","../node_modules/dset/dist/index.mjs","../node_modules/tslib/tslib.es6.mjs","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/history/esm/history.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-router/modules/miniCreateReactContext.js","../node_modules/react-router/modules/createContext.js","../node_modules/react-router/modules/createNamedContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/hooks.js","../node_modules/react-helmet-async/src/constants.js","../node_modules/react-helmet-async/src/utils.js","../node_modules/react-helmet-async/src/server.js","../node_modules/react-helmet-async/src/HelmetData.js","../node_modules/react-helmet-async/src/Provider.js","../node_modules/react-helmet-async/src/client.js","../node_modules/react-helmet-async/src/Dispatcher.js","../node_modules/react-helmet-async/src/index.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","assets/images/logo.svg","../node_modules/@octopus-investments/deep-sea-components/src/Icons/AlertCircle.tsx","../node_modules/@octopus-investments/deep-sea-components/src/Icons/AlertTriangle.tsx","../node_modules/@octopus-investments/deep-sea-components/src/Icons/ArrowLeft.tsx","../node_modules/@octopus-investments/deep-sea-components/src/Icons/ArrowRight.tsx","../node_modules/@octopus-investments/deep-sea-components/src/utils/styles/colors.ts","../node_modules/@octopus-investments/deep-sea-components/src/Icons/Check.tsx","../node_modules/@octopus-investments/deep-sea-components/src/Icons/CheckCircle.tsx","../node_modules/@octopus-investments/deep-sea-components/src/Icons/Close.tsx","../node_modules/@octopus-investments/deep-sea-components/src/Icons/Dollar.tsx","../node_modules/@octopus-investments/deep-sea-components/src/Icons/DoNotDisturb.tsx","../node_modules/@octopus-investments/deep-sea-components/src/Icons/Eye.tsx","../node_modules/@octopus-investments/deep-sea-components/src/Icons/EyeOff.tsx","../node_modules/@octopus-investments/deep-sea-components/src/Icons/InfoSolid.tsx","../node_modules/@octopus-investments/deep-sea-components/src/Icons/Info.tsx","../node_modules/@octopus-investments/deep-sea-components/src/Icons/PercentageLite.tsx","../node_modules/@octopus-investments/deep-sea-components/src/Icons/SterlingLite.tsx","../node_modules/@octopus-investments/deep-sea-components/node_modules/classnames/index.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/styled-components/node_modules/tslib/tslib.es6.mjs","../node_modules/@octopus-investments/deep-sea-components/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/stylis/src/Enum.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/stylis/src/Utility.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/stylis/src/Tokenizer.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/stylis/src/Parser.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/stylis/src/Prefixer.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/stylis/src/Serializer.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/stylis/src/Middleware.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/styled-components/dist/styled-components.browser.esm.js","../node_modules/@octopus-investments/deep-sea-components/src/components/Other/Loader/Loader.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/utils/styles/styles.ts","../node_modules/@octopus-investments/deep-sea-components/src/utils/utils.tsx","../node_modules/@octopus-investments/deep-sea-components/src/utils/formatHelpers/escapeRegExp.ts","../node_modules/@octopus-investments/deep-sea-components/src/utils/formatHelpers/parseAbbrValue.ts","../node_modules/@octopus-investments/deep-sea-components/src/utils/formatHelpers/cleanValue.ts","../node_modules/@octopus-investments/deep-sea-components/src/utils/formatHelpers/removeSeparators.ts","../node_modules/@octopus-investments/deep-sea-components/src/utils/formatHelpers/removeInvalidChars.ts","../node_modules/@octopus-investments/deep-sea-components/src/utils/formatHelpers/getSuffix.ts","../node_modules/@octopus-investments/deep-sea-components/src/utils/formatHelpers/formatValue.ts","../node_modules/@octopus-investments/deep-sea-components/src/utils/formatHelpers/isNumber.ts","../node_modules/@octopus-investments/deep-sea-components/src/utils/ErrorBoundary/ErrorBoundaryContext.tsx","../node_modules/@octopus-investments/deep-sea-components/src/theme/octopus-online.tsx","../node_modules/@octopus-investments/deep-sea-components/src/theme/idm.tsx","../node_modules/@octopus-investments/deep-sea-components/src/theme/online-application.tsx","../node_modules/@octopus-investments/deep-sea-components/src/theme/index.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Other/Loader/Loader.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Shared/VisuallyHidden/VisuallyHidden.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Shared/VisuallyHidden/VisuallyHidden.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/Button/Button.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/Button/Button.tsx","../node_modules/@octopus-investments/deep-sea-components/node_modules/react-merge-refs/dist/index.mjs","../node_modules/@octopus-investments/deep-sea-components/src/components/Navigation/Link/Link.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Navigation/Link/Link.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Alerts/Notification/Notification.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Alerts/Notification/Notification.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Alerts/Toast/Toast.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Alerts/SupportingMessage/SupportingMessage.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Alerts/SupportingMessage/SupportingMessage.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/Card/Card.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/Accordion/AccordionPanel/AccordionPanel.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/Accordion/AccordionHeading/AccordionHeading.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/Cardv1/Card.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/CardAction/CardAction.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/CardBody/CardBody.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/Chip/Chip.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Shared/Divider/Divider.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/EmptyState/EmptyState.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Shared/Divider/Divider.tsx","../node_modules/@octopus-investments/deep-sea-components/node_modules/dayjs/dayjs.min.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/polished/dist/polished.esm.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/Checkbox/Checkbox.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/Icons/Minus.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/Checkbox/Checkbox.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/List/ListItem/ListItem.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/List/ListItem/ListItem.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/List/List.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/NativeSelect/NativeSelect.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/Select/Select.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/hooks/useWindowSize.ts","../node_modules/@octopus-investments/deep-sea-components/src/components/Overlay/Tooltip/Tooltip.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Overlay/Tooltip/Tooltip.tsx","../node_modules/@octopus-investments/deep-sea-components/src/hooks/useMediaQuery/useMediaQuery.ts","../node_modules/@octopus-investments/deep-sea-components/src/utils/styles/breakpoints.ts","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/TextLabel/TextLabel.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/TextLabel/TextLabel.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/Status/Status.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/Table/Table.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/TableCell/TableCell.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/entities/lib/generated/decode-data-html.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/entities/lib/generated/decode-data-xml.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/entities/lib/decode_codepoint.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/entities/lib/decode.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/htmlparser2/lib/Tokenizer.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/htmlparser2/lib/Parser.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/domelementtype/lib/index.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/domhandler/lib/node.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/domhandler/lib/index.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/entities/lib/generated/encode-html.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/entities/lib/escape.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/entities/lib/encode.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/entities/lib/index.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/dom-serializer/lib/foreignNames.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/dom-serializer/lib/index.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/domutils/lib/stringify.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/domutils/lib/traversal.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/domutils/lib/manipulation.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/domutils/lib/querying.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/domutils/lib/legacy.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/domutils/lib/helpers.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/domutils/lib/feeds.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/domutils/lib/index.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/htmlparser2/lib/index.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/is-plain-object/dist/is-plain-object.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/deepmerge/dist/cjs.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/parse-srcset/src/parse-srcset.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/picocolors/picocolors.browser.js","../node_modules/@octopus-investments/deep-sea-components/__vite-browser-external","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/css-syntax-error.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/symbols.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/stringifier.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/stringify.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/node.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/declaration.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/nanoid/non-secure/index.cjs","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/previous-map.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/input.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/map-generator.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/comment.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/container.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/document.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/warning.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/result.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/tokenize.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/at-rule.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/root.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/list.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/rule.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/parser.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/parse.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/lazy-result.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/no-work-result.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/processor.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/fromJSON.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/postcss/lib/postcss.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/index.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/sanitize-html/node_modules/escape-string-regexp/index.js","../node_modules/@octopus-investments/deep-sea-components/src/components/DataDisplay/Typography/Typography.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/ButtonGroup/ButtonGroup.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/CheckboxGroup/CheckboxGroup.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/CheckboxGroup/CheckboxGroup.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/InputField/InputField.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/InputField/InputField.tsx","../node_modules/@octopus-investments/deep-sea-components/src/hooks/useInput.ts/useInput.ts","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/DateField/DateField.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/node_modules/moment/dist/moment.js","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/DateInput/DateInput.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/node_modules/number-to-words/numberToWords.min.js","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/DateRange/DateRange.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/DatePicker/DatePickerCustomSelect/DatePickerCustomSelect.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/DatePicker/DatePicker.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/hooks/useFormattedInputHandlers/index.tsx","../node_modules/@octopus-investments/deep-sea-components/src/utils/formatHelpers/repositionCursor.ts","../node_modules/@octopus-investments/deep-sea-components/src/utils/formatHelpers/fixedDecimalValue.ts","../node_modules/@octopus-investments/deep-sea-components/src/utils/formatHelpers/padTrimValue.ts","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/FormattedInput/FormattedInput.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/FormattedInput/index.tsx","../node_modules/@octopus-investments/deep-sea-components/src/utils/formatHelpers/getLocaleConfig.ts","../node_modules/@octopus-investments/deep-sea-components/node_modules/uuid/dist/esm-browser/rng.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/@octopus-investments/deep-sea-components/node_modules/uuid/dist/esm-browser/native.js","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/SearchField/SearchField.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/SearchField/SearchField.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/Options/Options.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/Radio/Radio.styles.ts","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/MultiSelect/MultiSelect.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/Radio/Radio.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/RadioGroup/RadioGroup.styles.ts","../node_modules/@octopus-investments/deep-sea-components/src/components/Layout/FlexBox/Flexbox.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/SearchFieldV1/Search.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Inputs/Toggle/Toggle.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Layout/FlexBox/FlexBox.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Media/Image/Image.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Navigation/Pagination/Pagination.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Media/MediaCard/MediaCard.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Navigation/Breadcrumbs/Breadcrumbs.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Navigation/Tabs/Tabs.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Navigation/Step/Step.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Navigation/StepLabel/StepLabel.styles.ts","../node_modules/@octopus-investments/deep-sea-components/src/components/Navigation/Stepper/Stepper.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Overlay/Modal/Modal.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Other/Collapse/Collapse.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Overlay/Drawer/Drawer.styles.tsx","../node_modules/@octopus-investments/deep-sea-components/src/components/Overlay/Modal/Modal.tsx","utils/constants.js","components/Modals/AccountLocked/AccountLocked.jsx","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/plugins/es5.ts","../node_modules/immer/src/immer.ts","../node_modules/immer/src/utils/env.ts","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/redux-thunk/es/index.js","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/isPlainObject.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/nanoid.ts","../node_modules/@reduxjs/toolkit/src/createAsyncThunk.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@amplitude/utils/src/misc.ts","../node_modules/@reduxjs/toolkit/src/index.ts","../node_modules/decode-uri-component/index.js","../node_modules/split-on-first/index.js","../node_modules/filter-obj/index.js","../node_modules/query-string/base.js","../node_modules/query-string/index.js","../node_modules/@amplitude/analytics-connector/dist/analytics-connector.esm.js","../node_modules/amplitude-js/amplitude.esm.js","ampli/index.js","api/Http.js","store/slices/apiErrorsSlice.js","store/slices/applicationSlice.js","store/slices/loadersSlice.js","store/slices/accountSlice.js","store/index.js","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/@segment/analytics-next/src/lib/get-process-env.ts","../node_modules/@segment/analytics-next/src/core/arguments-resolver/index.ts","../node_modules/@segment/analytics-core/src/analytics/dispatch.ts","../node_modules/@segment/analytics-next/src/core/page/get-page-context.ts","../node_modules/@segment/analytics-next/src/core/page/add-page-context.ts","../node_modules/@segment/analytics-next/src/lib/pick.ts","../node_modules/@segment/analytics-core/src/validation/errors.ts","../node_modules/@segment/analytics-core/src/validation/assertions.ts","../node_modules/@segment/analytics-core/src/events/index.ts","../node_modules/@segment/analytics-core/src/utils/pick.ts","../node_modules/@segment/analytics-next/src/core/events/index.ts","../node_modules/@segment/analytics-next/src/core/plugin/index.ts","../node_modules/@segment/analytics-core/src/queue/event-queue.ts","../node_modules/@segment/analytics-core/src/task/task-group.ts","../node_modules/@segment/analytics-core/src/utils/is-thenable.ts","../node_modules/@segment/analytics-core/src/utils/group-by.ts","../node_modules/@segment/analytics-next/src/core/queue/event-queue.ts","../node_modules/@segment/analytics-next/src/lib/bind-all.ts","../node_modules/@segment/analytics-next/src/core/storage/types.ts","../node_modules/@segment/analytics-next/src/core/storage/universalStorage.ts","../node_modules/@segment/analytics-next/src/core/storage/memoryStorage.ts","../node_modules/@segment/analytics-next/src/core/storage/settings.ts","../node_modules/js-cookie/dist/js.cookie.mjs","../node_modules/@segment/analytics-next/src/core/user/tld.ts","../node_modules/@segment/analytics-next/src/core/storage/cookieStorage.ts","../node_modules/@segment/analytics-next/src/core/storage/localStorage.ts","../node_modules/@segment/analytics-next/src/core/storage/index.ts","../node_modules/@segment/analytics-next/src/core/user/index.ts","../node_modules/@segment/analytics-next/src/core/buffer/index.ts","../node_modules/@segment/analytics-next/src/lib/is-thenable.ts","../node_modules/@segment/analytics-next/src/core/analytics/index.ts","../node_modules/@segment/analytics-next/src/plugins/env-enrichment/index.ts","../node_modules/@segment/analytics-next/src/lib/client-hints/index.ts","../node_modules/@segment/analytics-next/src/plugins/remote-loader/index.ts","../node_modules/@segment/analytics-next/src/lib/on-page-change.ts","../node_modules/@segment/analytics-next/src/plugins/segmentio/batched-dispatcher.ts","../node_modules/@segment/analytics-next/src/plugins/segmentio/normalize.ts","../node_modules/@segment/analytics-next/src/plugins/segmentio/schedule-flush.ts","../node_modules/@segment/analytics-next/src/plugins/segmentio/index.ts","../node_modules/@segment/analytics-next/src/plugins/segmentio/fetch-dispatcher.ts","../node_modules/@segment/analytics-next/src/core/inspector/index.ts","../node_modules/@segment/analytics-next/src/browser/index.ts","utils/helpers.js","components/Modals/ServerError/ServerError.jsx","hooks/usePortal.js","components/Portal/Portal.jsx","components/FooterText/FooterText.jsx","hooks/useWindowSize.js","layouts/Main.jsx","pages/LoginOrRegisterPages/CheckEmailMessagePage/CheckEmailMessagePage.jsx","components/Modals/CONReminder/CONReminder.jsx","pages/LoginOrRegisterPages/ConfirmCONPage/ConfirmCONPage.jsx","pages/ContinueToAccountOrLogoutPage/ContinueToAccountOrLogoutPage.jsx","layouts/FullPageMessage.jsx","pages/LoadingPage/LoadingPage.jsx","components/Inputs/PasswordField/PasswordField.jsx","pages/LoginOrRegisterPages/LoginOrRegisterPage/LoginOrRegisterPage.jsx","pages/LoginOrRegisterPages/LoginPage/LoginPage.jsx","pages/LoginOrRegisterPages/LoginPage/TwoFactorLoginPage.jsx","pages/RegistrationPages/TokenExpiredPage/TokenExpiredPage.jsx","pages/LoginOrRegisterPages/LoginOrRegisterPages.jsx","pages/LoggingOutPage/LoggingOutPage.jsx","../node_modules/@octopus-investments/deep-sea-components/src/Icons/Activity.tsx","../node_modules/@octopus-investments/deep-sea-components/src/Icons/Clipboard.tsx","pages/RegistrationPages/CreatePasswordPage/PasswordChecks/PasswordChecks.jsx","pages/RegistrationPages/CreatePasswordPage/CreatePasswordPage.jsx","pages/RegistrationPages/RegistrationPages.jsx","../node_modules/qrcode.react/lib/esm/index.js","assets/images/oi-logo.svg","layouts/FullPageWithHeader.jsx","pages/TwoFactorRegisterPages/TwoFactorRegisterPage/TwoFactorRegisterPage.jsx","pages/TwoFactorRegisterPages/TwoFactorRegisterPages.jsx","../node_modules/react-ga/dist/esm/utils/console/warn.js","../node_modules/react-ga/dist/esm/components/OutboundLink.js","../node_modules/react-ga/dist/esm/utils/redactEmail.js","../node_modules/react-ga/dist/esm/utils/trim.js","../node_modules/react-ga/dist/esm/utils/toTitleCase.js","../node_modules/react-ga/dist/esm/utils/format.js","../node_modules/react-ga/dist/esm/utils/mightBeEmail.js","../node_modules/react-ga/dist/esm/utils/loadGA.js","../node_modules/react-ga/dist/esm/utils/console/log.js","../node_modules/react-ga/dist/esm/utils/testModeAPI.js","../node_modules/react-ga/dist/esm/core.js","../node_modules/react-ga/dist/esm/utils/removeLeadingSlash.js","../node_modules/react-ga/dist/esm/index.js","utils/productTools/index.js","utils/productTools/amplitude.js","utils/productTools/beacon.js","utils/productTools/google-analytics.js","utils/productTools/appcues.js","App.js","pages/AccountLockedPage/AccountLockedPage.jsx","components/PermanentLockBoundary/PermanentLockBoundary.jsx","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","index.js"],"sourcesContent":["/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v0.7.33\n Copyright © 2012-2021 Faisal Salman \n MIT License */ /*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment.\n Demo : https://faisalman.github.io/ua-parser-js\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n(function (window, undefined) {\n \"use strict\";\n\n //////////////\n // Constants\n /////////////\n\n var LIBVERSION = \"0.7.33\",\n EMPTY = \"\",\n UNKNOWN = \"?\",\n FUNC_TYPE = \"function\",\n UNDEF_TYPE = \"undefined\",\n OBJ_TYPE = \"object\",\n STR_TYPE = \"string\",\n MAJOR = \"major\",\n MODEL = \"model\",\n NAME = \"name\",\n TYPE = \"type\",\n VENDOR = \"vendor\",\n VERSION = \"version\",\n ARCHITECTURE = \"architecture\",\n CONSOLE = \"console\",\n MOBILE = \"mobile\",\n TABLET = \"tablet\",\n SMARTTV = \"smarttv\",\n WEARABLE = \"wearable\",\n EMBEDDED = \"embedded\",\n UA_MAX_LENGTH = 350;\n\n var AMAZON = \"Amazon\",\n APPLE = \"Apple\",\n ASUS = \"ASUS\",\n BLACKBERRY = \"BlackBerry\",\n BROWSER = \"Browser\",\n CHROME = \"Chrome\",\n EDGE = \"Edge\",\n FIREFOX = \"Firefox\",\n GOOGLE = \"Google\",\n HUAWEI = \"Huawei\",\n LG = \"LG\",\n MICROSOFT = \"Microsoft\",\n MOTOROLA = \"Motorola\",\n OPERA = \"Opera\",\n SAMSUNG = \"Samsung\",\n SHARP = \"Sharp\",\n SONY = \"Sony\",\n XIAOMI = \"Xiaomi\",\n ZEBRA = \"Zebra\",\n FACEBOOK = \"Facebook\";\n\n ///////////\n // Helper\n //////////\n\n var extend = function (regexes, extensions) {\n var mergedRegexes = {};\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n return mergedRegexes;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i = 0; i < arr.length; i++) {\n enums[arr[i].toUpperCase()] = arr[i];\n }\n return enums;\n },\n has = function (str1, str2) {\n return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;\n },\n lowerize = function (str) {\n return str.toLowerCase();\n },\n majorize = function (version) {\n return typeof version === STR_TYPE ? version.replace(/[^\\d\\.]/g, EMPTY).split(\".\")[0] : undefined;\n },\n trim = function (str, len) {\n if (typeof str === STR_TYPE) {\n str = str.replace(/^\\s\\s*/, EMPTY);\n return typeof len === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);\n }\n };\n\n ///////////////\n // Map helper\n //////////////\n\n var rgxMapper = function (ua, arrays) {\n var i = 0,\n j,\n k,\n p,\n q,\n matches,\n match;\n\n // loop through all regexes maps\n while (i < arrays.length && !matches) {\n var regex = arrays[i], // even sequence (0,2,4,..)\n props = arrays[i + 1]; // odd sequence (1,3,5,..)\n j = k = 0;\n\n // try matching uastring with regexes\n while (j < regex.length && !matches) {\n matches = regex[j++].exec(ua);\n\n if (!!matches) {\n for (p = 0; p < props.length; p++) {\n match = matches[++k];\n q = props[p];\n // check if given property is actually array\n if (typeof q === OBJ_TYPE && q.length > 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length === 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length === 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n strMapper = function (str, map) {\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return i === UNKNOWN ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return i === UNKNOWN ? undefined : i;\n }\n }\n return str;\n };\n\n ///////////////\n // String map\n //////////////\n\n // Safari < 3.0\n var oldSafariMap = {\n \"1.0\": \"/8\",\n 1.2: \"/1\",\n 1.3: \"/3\",\n \"2.0\": \"/412\",\n \"2.0.2\": \"/416\",\n \"2.0.3\": \"/417\",\n \"2.0.4\": \"/419\",\n \"?\": \"/\"\n },\n windowsVersionMap = {\n ME: \"4.90\",\n \"NT 3.11\": \"NT3.51\",\n \"NT 4.0\": \"NT4.0\",\n 2000: \"NT 5.0\",\n XP: [\"NT 5.1\", \"NT 5.2\"],\n Vista: \"NT 6.0\",\n 7: \"NT 6.1\",\n 8: \"NT 6.2\",\n 8.1: \"NT 6.3\",\n 10: [\"NT 6.4\", \"NT 10.0\"],\n RT: \"ARM\"\n };\n\n //////////////\n // Regex map\n /////////////\n\n var regexes = {\n browser: [\n [\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ],\n [VERSION, [NAME, \"Chrome\"]],\n [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ],\n [VERSION, [NAME, \"Edge\"]],\n [\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ],\n [NAME, VERSION],\n [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ],\n [VERSION, [NAME, OPERA + \" Mini\"]],\n [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ],\n [VERSION, [NAME, OPERA]],\n [\n // Mixed\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n // Trident based\n /(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i, // Avant/IEMobile/SlimBrowser\n /(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i, // Baidu Browser\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\n /(weibo)__([\\d\\.]+)/i // Weibo\n ],\n [NAME, VERSION],\n [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ],\n [VERSION, [NAME, \"UC\" + BROWSER]],\n [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i\n ],\n [VERSION, [NAME, \"WeChat(Win) Desktop\"]],\n [\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ],\n [VERSION, [NAME, \"WeChat\"]],\n [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ],\n [VERSION, [NAME, \"Konqueror\"]],\n [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ],\n [VERSION, [NAME, \"IE\"]],\n [\n /yabrowser\\/([\\w\\.]+)/i // Yandex\n ],\n [VERSION, [NAME, \"Yandex\"]],\n [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ],\n [[NAME, /(.+)/, \"$1 Secure \" + BROWSER], VERSION],\n [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ],\n [VERSION, [NAME, FIREFOX + \" Focus\"]],\n [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ],\n [VERSION, [NAME, OPERA + \" Touch\"]],\n [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ],\n [VERSION, [NAME, \"Coc Coc\"]],\n [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ],\n [VERSION, [NAME, \"Dolphin\"]],\n [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ],\n [VERSION, [NAME, OPERA + \" Coast\"]],\n [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ],\n [VERSION, [NAME, \"MIUI \" + BROWSER]],\n [\n /fxios\\/([-\\w\\.]+)/i // Firefox for iOS\n ],\n [VERSION, [NAME, FIREFOX]],\n [\n /\\bqihu|(qi?ho?o?|360)browser/i // 360\n ],\n [[NAME, \"360 \" + BROWSER]],\n [/(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i],\n [[NAME, /(.+)/, \"$1 \" + BROWSER], VERSION],\n [\n // Oculus/Samsung/Sailfish/Huawei Browser\n /(comodo_dragon)\\/([\\w\\.]+)/i // Comodo Dragon\n ],\n [[NAME, /_/g, \" \"], VERSION],\n [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i // QQBrowser/Baidu App/2345 Browser\n ],\n [NAME, VERSION],\n [\n /(metasr)[\\/ ]?([\\w\\.]+)/i, // SouGouBrowser\n /(lbbrowser)/i, // LieBao Browser\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ],\n [NAME],\n [\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ],\n [[NAME, FACEBOOK], VERSION],\n [\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(chromium|instagram)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram\n ],\n [NAME, VERSION],\n [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ],\n [VERSION, [NAME, \"GSA\"]],\n [\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ],\n [VERSION, [NAME, CHROME + \" Headless\"]],\n [\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ],\n [[NAME, CHROME + \" WebView\"], VERSION],\n [\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ],\n [VERSION, [NAME, \"Android \" + BROWSER]],\n [\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ],\n [NAME, VERSION],\n [\n /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\n ],\n [VERSION, [NAME, \"Mobile Safari\"]],\n [\n /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\n ],\n [VERSION, NAME],\n [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ],\n [NAME, [VERSION, strMapper, oldSafariMap]],\n [/(webkit|khtml)\\/([\\w\\.]+)/i],\n [NAME, VERSION],\n [\n // Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ],\n [[NAME, \"Netscape\"], VERSION],\n [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ],\n [VERSION, [NAME, FIREFOX + \" Reality\"]],\n [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\n /(links) \\(([\\w\\.]+)/i // Links\n ],\n [NAME, VERSION],\n [\n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ],\n [NAME, [VERSION, /master.|lts./, \"\"]]\n ],\n\n cpu: [\n [\n /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i // AMD64 (x64)\n ],\n [[ARCHITECTURE, \"amd64\"]],\n [\n /(ia32(?=;))/i // IA32 (quicktime)\n ],\n [[ARCHITECTURE, lowerize]],\n [\n /((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\n ],\n [[ARCHITECTURE, \"ia32\"]],\n [\n /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\n ],\n [[ARCHITECTURE, \"arm64\"]],\n [\n /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ],\n [[ARCHITECTURE, \"armhf\"]],\n [\n // PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i\n ],\n [[ARCHITECTURE, \"arm\"]],\n [\n /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\n ],\n [[ARCHITECTURE, /ower/, EMPTY, lowerize]],\n [\n /(sun4\\w)[;\\)]/i // SPARC\n ],\n [[ARCHITECTURE, \"sparc\"]],\n [\n /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ],\n [[ARCHITECTURE, lowerize]]\n ],\n\n device: [\n [\n //////////////////////////\n // MOBILES & TABLETS\n // Ordered by popularity\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ],\n [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]],\n [\n /\\b((?:s[cgp]h|gt|sm)-\\w+|galaxy nexus)/i,\n /samsung[- ]([-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ],\n [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]],\n [\n // Apple\n /((ipod|iphone)\\d+,\\d+)/i // iPod/iPhone model\n ],\n [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]],\n [\n /(ipad\\d+,\\d+)/i // iPad model\n ],\n [MODEL, [VENDOR, APPLE], [TYPE, TABLET]],\n [\n /\\((ip(?:hone|od)[\\w ]*);/i // iPod/iPhone\n ],\n [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]],\n [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ],\n [MODEL, [VENDOR, APPLE], [TYPE, TABLET]],\n [/(macintosh);/i],\n [MODEL, [VENDOR, APPLE]],\n [\n // Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n ],\n [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]],\n [\n /(?:huawei|honor)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ],\n [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]],\n [\n // Xiaomi\n /\\b(poco[\\w ]+)(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i // Xiaomi Mi\n ],\n [\n [MODEL, /_/g, \" \"],\n [VENDOR, XIAOMI],\n [TYPE, MOBILE]\n ],\n [\n /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\n ],\n [\n [MODEL, /_/g, \" \"],\n [VENDOR, XIAOMI],\n [TYPE, TABLET]\n ],\n [\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ],\n [MODEL, [VENDOR, \"OPPO\"], [TYPE, MOBILE]],\n [\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ],\n [MODEL, [VENDOR, \"Vivo\"], [TYPE, MOBILE]],\n [\n // Realme\n /\\b(rmx[12]\\d{3})(?: bui|;|\\))/i\n ],\n [MODEL, [VENDOR, \"Realme\"], [TYPE, MOBILE]],\n [\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ](\\w*)/i,\n /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n ],\n [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]],\n [/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],\n [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]],\n [\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ],\n [MODEL, [VENDOR, LG], [TYPE, TABLET]],\n [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ],\n [MODEL, [VENDOR, LG], [TYPE, MOBILE]],\n [\n // Lenovo\n /(ideatab[-\\w ]+)/i,\n /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n ],\n [MODEL, [VENDOR, \"Lenovo\"], [TYPE, TABLET]],\n [\n // Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n /nokia[-_ ]?([-\\w\\.]*)/i\n ],\n [\n [MODEL, /_/g, \" \"],\n [VENDOR, \"Nokia\"],\n [TYPE, MOBILE]\n ],\n [\n // Google\n /(pixel c)\\b/i // Google Pixel C\n ],\n [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]],\n [\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ],\n [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]],\n [\n // Sony\n /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ],\n [MODEL, [VENDOR, SONY], [TYPE, MOBILE]],\n [/sony tablet [ps]/i, /\\b(?:sony)?sgp\\w+(?: bui|\\))/i],\n [\n [MODEL, \"Xperia Tablet\"],\n [VENDOR, SONY],\n [TYPE, TABLET]\n ],\n [\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ],\n [MODEL, [VENDOR, \"OnePlus\"], [TYPE, MOBILE]],\n [\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi)( bui|\\))/i, // Kindle Fire without Silk\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ],\n [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]],\n [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ],\n [\n [MODEL, /(.+)/g, \"Fire Phone $1\"],\n [VENDOR, AMAZON],\n [TYPE, MOBILE]\n ],\n [\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ],\n [MODEL, VENDOR, [TYPE, TABLET]],\n [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ],\n [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]],\n [\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ],\n [MODEL, [VENDOR, ASUS], [TYPE, TABLET]],\n [/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],\n [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]],\n [\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ],\n [MODEL, [VENDOR, \"HTC\"], [TYPE, TABLET]],\n [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ],\n [VENDOR, [MODEL, /_/g, \" \"], [TYPE, MOBILE]],\n [\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ],\n [MODEL, [VENDOR, \"Acer\"], [TYPE, TABLET]],\n [\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ],\n [MODEL, [VENDOR, \"Meizu\"], [TYPE, MOBILE]],\n [\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ],\n [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]],\n [\n // MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(asus)-?(\\w+)/i, // Asus\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i, // Lenovo\n /(jolla)/i, // Jolla\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ],\n [VENDOR, MODEL, [TYPE, MOBILE]],\n [\n /(archos) (gamepad2?)/i, // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i, // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i, // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i, // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i, // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i, // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\n ],\n [VENDOR, MODEL, [TYPE, TABLET]],\n [\n /(surface duo)/i // Surface Duo\n ],\n [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]],\n [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ],\n [MODEL, [VENDOR, \"Fairphone\"], [TYPE, MOBILE]],\n [\n /(u304aa)/i // AT&T\n ],\n [MODEL, [VENDOR, \"AT&T\"], [TYPE, MOBILE]],\n [\n /\\bsie-(\\w*)/i // Siemens\n ],\n [MODEL, [VENDOR, \"Siemens\"], [TYPE, MOBILE]],\n [\n /\\b(rct\\w+) b/i // RCA Tablets\n ],\n [MODEL, [VENDOR, \"RCA\"], [TYPE, TABLET]],\n [\n /\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\n ],\n [MODEL, [VENDOR, \"Dell\"], [TYPE, TABLET]],\n [\n /\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\n ],\n [MODEL, [VENDOR, \"Verizon\"], [TYPE, TABLET]],\n [\n /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\n ],\n [MODEL, [VENDOR, \"Barnes & Noble\"], [TYPE, TABLET]],\n [/\\b(tm\\d{3}\\w+) b/i],\n [MODEL, [VENDOR, \"NuVision\"], [TYPE, TABLET]],\n [\n /\\b(k88) b/i // ZTE K Series Tablet\n ],\n [MODEL, [VENDOR, \"ZTE\"], [TYPE, TABLET]],\n [\n /\\b(nx\\d{3}j) b/i // ZTE Nubia\n ],\n [MODEL, [VENDOR, \"ZTE\"], [TYPE, MOBILE]],\n [\n /\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\n ],\n [MODEL, [VENDOR, \"Swiss\"], [TYPE, MOBILE]],\n [\n /\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\n ],\n [MODEL, [VENDOR, \"Swiss\"], [TYPE, TABLET]],\n [\n /\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\n ],\n [MODEL, [VENDOR, \"Zeki\"], [TYPE, TABLET]],\n [\n /\\b([yr]\\d{2}) b/i,\n /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\n ],\n [[VENDOR, \"Dragon Touch\"], MODEL, [TYPE, TABLET]],\n [\n /\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\n ],\n [MODEL, [VENDOR, \"Insignia\"], [TYPE, TABLET]],\n [\n /\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\n ],\n [MODEL, [VENDOR, \"NextBook\"], [TYPE, TABLET]],\n [\n /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\n ],\n [[VENDOR, \"Voice\"], MODEL, [TYPE, MOBILE]],\n [\n /\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\n ],\n [[VENDOR, \"LvTel\"], MODEL, [TYPE, MOBILE]],\n [\n /\\b(ph-1) /i // Essential PH-1\n ],\n [MODEL, [VENDOR, \"Essential\"], [TYPE, MOBILE]],\n [\n /\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\n ],\n [MODEL, [VENDOR, \"Envizen\"], [TYPE, TABLET]],\n [\n /\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\n ],\n [MODEL, [VENDOR, \"MachSpeed\"], [TYPE, TABLET]],\n [\n /\\btu_(1491) b/i // Rotor Tablets\n ],\n [MODEL, [VENDOR, \"Rotor\"], [TYPE, TABLET]],\n [\n /(shield[\\w ]+) b/i // Nvidia Shield Tablets\n ],\n [MODEL, [VENDOR, \"Nvidia\"], [TYPE, TABLET]],\n [\n /(sprint) (\\w+)/i // Sprint Phones\n ],\n [VENDOR, MODEL, [TYPE, MOBILE]],\n [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ],\n [\n [MODEL, /\\./g, \" \"],\n [VENDOR, MICROSOFT],\n [TYPE, MOBILE]\n ],\n [\n /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ],\n [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]],\n [/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],\n [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]],\n [\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(ouya)/i, // Ouya\n /(nintendo) ([wids3utch]+)/i // Nintendo\n ],\n [VENDOR, MODEL, [TYPE, CONSOLE]],\n [\n /droid.+; (shield) bui/i // Nvidia\n ],\n [MODEL, [VENDOR, \"Nvidia\"], [TYPE, CONSOLE]],\n [\n /(playstation [345portablevi]+)/i // Playstation\n ],\n [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]],\n [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ],\n [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]],\n [\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ],\n [VENDOR, [TYPE, SMARTTV]],\n [/hbbtv.+maple;(\\d+)/i],\n [\n [MODEL, /^/, \"SmartTV\"],\n [VENDOR, SAMSUNG],\n [TYPE, SMARTTV]\n ],\n [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ],\n [\n [VENDOR, LG],\n [TYPE, SMARTTV]\n ],\n [\n /(apple) ?tv/i // Apple TV\n ],\n [VENDOR, [MODEL, APPLE + \" TV\"], [TYPE, SMARTTV]],\n [\n /crkey/i // Google Chromecast\n ],\n [\n [MODEL, CHROME + \"cast\"],\n [VENDOR, GOOGLE],\n [TYPE, SMARTTV]\n ],\n [\n /droid.+aft(\\w)( bui|\\))/i // Fire TV\n ],\n [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]],\n [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ],\n [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],\n [\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ],\n [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]],\n [\n /(mitv-\\w{5}) bui/i // Xiaomi\n ],\n [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]],\n [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w ]*; *(\\w[^;]*);([^;]*)/i // HbbTV devices\n ],\n [\n [VENDOR, trim],\n [MODEL, trim],\n [TYPE, SMARTTV]\n ],\n [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\n ],\n [[TYPE, SMARTTV]],\n [\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /((pebble))app/i // Pebble\n ],\n [VENDOR, MODEL, [TYPE, WEARABLE]],\n [\n /droid.+; (glass) \\d/i // Google Glass\n ],\n [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]],\n [/droid.+; (wt63?0{2,3})\\)/i],\n [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]],\n [\n /(quest( 2)?)/i // Oculus Quest\n ],\n [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]],\n [\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ],\n [VENDOR, [TYPE, EMBEDDED]],\n [\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ],\n [MODEL, [TYPE, MOBILE]],\n [\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ],\n [MODEL, [TYPE, TABLET]],\n [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ],\n [[TYPE, TABLET]],\n [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ],\n [[TYPE, MOBILE]],\n [\n /(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\n ],\n [MODEL, [VENDOR, \"Generic\"]]\n ],\n\n engine: [\n [\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ],\n [VERSION, [NAME, EDGE + \"HTML\"]],\n [\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ],\n [VERSION, [NAME, \"Blink\"]],\n [\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i // iCab\n ],\n [NAME, VERSION],\n [\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ],\n [VERSION, NAME]\n ],\n\n os: [\n [\n // Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ],\n [NAME, VERSION],\n [\n /(windows) nt 6\\.2; (arm)/i, // Windows RT\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i, // Windows Phone\n /(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i\n ],\n [NAME, [VERSION, strMapper, windowsVersionMap]],\n [/(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],\n [\n [NAME, \"Windows\"],\n [VERSION, strMapper, windowsVersionMap]\n ],\n [\n // iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /cfnetwork\\/.+darwin/i\n ],\n [\n [VERSION, /_/g, \".\"],\n [NAME, \"iOS\"]\n ],\n [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ],\n [\n [NAME, \"Mac OS\"],\n [VERSION, /_/g, \".\"]\n ],\n [\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\n ],\n [VERSION, NAME],\n [\n // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,\n /(blackberry)\\w*\\/([\\w\\.]*)/i, // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i, // Tizen/KaiOS\n /\\((series40);/i // Series 40\n ],\n [NAME, VERSION],\n [\n /\\(bb(10);/i // BlackBerry 10\n ],\n [VERSION, [NAME, BLACKBERRY]],\n [\n /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ],\n [VERSION, [NAME, \"Symbian\"]],\n [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ],\n [VERSION, [NAME, FIREFOX + \" OS\"]],\n [\n /web0s;.+rt(tv)/i,\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ],\n [VERSION, [NAME, \"webOS\"]],\n [\n // Google Chromecast\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\n ],\n [VERSION, [NAME, CHROME + \"cast\"]],\n [\n /(cros) [\\w]+ ([\\w\\.]+\\w)/i // Chromium OS\n ],\n [[NAME, \"Chromium OS\"], VERSION],\n [\n // Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i, // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ],\n [NAME, VERSION],\n [\n /(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ],\n [[NAME, \"Solaris\"], VERSION],\n [\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX\n /(unix) ?([\\w\\.]*)/i // UNIX\n ],\n [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n var UAParser = function (ua, extensions) {\n if (typeof ua === OBJ_TYPE) {\n extensions = ua;\n ua = undefined;\n }\n\n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions).getResult();\n }\n\n var _ua =\n ua ||\n (typeof window !== UNDEF_TYPE &&\n window.navigator &&\n window.navigator.userAgent ? window.navigator.userAgent : EMPTY);\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n\n this.getBrowser = function () {\n var _browser = {};\n _browser[NAME] = undefined;\n _browser[VERSION] = undefined;\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\n _browser.major = majorize(_browser.version);\n return _browser;\n };\n this.getCPU = function () {\n var _cpu = {};\n _cpu[ARCHITECTURE] = undefined;\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n return _cpu;\n };\n this.getDevice = function () {\n var _device = {};\n _device[VENDOR] = undefined;\n _device[MODEL] = undefined;\n _device[TYPE] = undefined;\n rgxMapper.call(_device, _ua, _rgxmap.device);\n return _device;\n };\n this.getEngine = function () {\n var _engine = {};\n _engine[NAME] = undefined;\n _engine[VERSION] = undefined;\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\n return _engine;\n };\n this.getOS = function () {\n var _os = {};\n _os[NAME] = undefined;\n _os[VERSION] = undefined;\n rgxMapper.call(_os, _ua, _rgxmap.os);\n return _os;\n };\n this.getResult = function () {\n return {\n ua: this.getUA(),\n browser: this.getBrowser(),\n engine: this.getEngine(),\n os: this.getOS(),\n device: this.getDevice(),\n cpu: this.getCPU()\n };\n };\n this.getUA = function () {\n return _ua;\n };\n this.setUA = function (ua) {\n _ua =\n typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n };\n this.setUA(_ua);\n return this;\n };\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([\n MODEL,\n VENDOR,\n TYPE,\n CONSOLE,\n MOBILE,\n SMARTTV,\n TABLET,\n WEARABLE,\n EMBEDDED\n ]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n ///////////\n // Export\n //////////\n\n // check js environment\n if (typeof exports !== UNDEF_TYPE) {\n // nodejs env\n if (typeof module !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if (typeof define === FUNC_TYPE && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (typeof window !== UNDEF_TYPE) {\n // browser env\n window.UAParser = UAParser;\n }\n }\n\n // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n $.ua.get = function () {\n return parser.getUA();\n };\n $.ua.set = function (ua) {\n parser.setUA(ua);\n var result = parser.getResult();\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n})(typeof window === \"object\" ? window : this);\n","import { CoreContext } from '../context'\nimport type { Callback } from '../events'\n\nexport function pTimeout(promise: Promise, timeout: number): Promise {\n return new Promise((resolve, reject) => {\n const timeoutId = setTimeout(() => {\n reject(Error('Promise timed out'))\n }, timeout)\n\n promise\n .then((val) => {\n clearTimeout(timeoutId)\n return resolve(val)\n })\n .catch(reject)\n })\n}\n\nexport function sleep(timeoutInMs: number): Promise {\n return new Promise((resolve) => setTimeout(resolve, timeoutInMs))\n}\n\n/**\n * @param ctx\n * @param callback - the function to invoke\n * @param delay - aka \"timeout\". The amount of time in ms to wait before invoking the callback.\n */\nexport function invokeCallback(\n ctx: Ctx,\n callback: Callback,\n delay: number\n): Promise {\n const cb = () => {\n try {\n return Promise.resolve(callback(ctx))\n } catch (err) {\n return Promise.reject(err)\n }\n }\n\n return (\n sleep(delay)\n // pTimeout ensures that the callback can't cause the context to hang\n .then(() => pTimeout(cb(), 1000))\n .catch((err) => {\n ctx?.log('warn', 'Callback Error', { error: err })\n ctx?.stats.increment('callback_error')\n })\n .then(() => ctx)\n )\n}\n","export type LogLevel = 'debug' | 'info' | 'warn' | 'error'\nexport type LogMessage = {\n level: LogLevel\n message: string\n time?: Date\n extras?: Record\n}\n\nexport interface GenericLogger {\n log(level: LogLevel, message: string, extras?: object): void\n flush(): void\n logs: LogMessage[]\n}\n\nexport class CoreLogger implements GenericLogger {\n private _logs: LogMessage[] = []\n\n log(level: LogLevel, message: string, extras?: object) {\n const time = new Date()\n this._logs.push({\n level,\n message,\n time,\n extras,\n })\n }\n\n public get logs(): LogMessage[] {\n return this._logs\n }\n\n public flush(): void {\n if (this.logs.length > 1) {\n const formatted = this._logs.reduce((logs, log) => {\n const line = {\n ...log,\n json: JSON.stringify(log.extras, null, ' '),\n extras: log.extras,\n }\n\n delete line['time']\n\n let key = log.time?.toISOString() ?? ''\n if (logs[key]) {\n key = `${key}-${Math.random()}`\n }\n\n return {\n ...logs,\n [key]: line,\n }\n }, {} as Record)\n\n // ie doesn't like console.table\n if (console.table) {\n console.table(formatted)\n } else {\n console.log(formatted)\n }\n } else {\n this.logs.forEach((logEntry) => {\n const { level, message, extras } = logEntry\n\n if (level === 'info' || level === 'debug') {\n console.log(message, extras ?? '')\n } else {\n console[level](message, extras ?? '')\n }\n })\n }\n\n this._logs = []\n }\n}\n","import { CoreSegmentEvent } from '../events/interfaces'\n\nimport { v4 as uuid } from '@lukeed/uuid'\nimport { dset } from 'dset'\nimport { CoreLogger, LogLevel, LogMessage } from '../logger'\nimport { CoreStats, CoreMetric, NullStats } from '../stats'\n\nexport interface SerializedContext {\n id: string\n event: CoreSegmentEvent\n logs: LogMessage[]\n metrics?: CoreMetric[]\n}\n\nexport interface ContextFailedDelivery {\n reason: unknown\n}\n\nexport interface CancelationOptions {\n retry?: boolean\n reason?: string\n type?: string\n}\n\nexport class ContextCancelation {\n retry: boolean\n type: string\n reason?: string\n\n constructor(options: CancelationOptions) {\n this.retry = options.retry ?? true\n this.type = options.type ?? 'plugin Error'\n this.reason = options.reason ?? ''\n }\n}\n\nexport abstract class CoreContext<\n Event extends CoreSegmentEvent = CoreSegmentEvent\n> {\n event: Event\n logger: CoreLogger\n stats: CoreStats\n attempts = 0\n\n private _failedDelivery?: ContextFailedDelivery\n private _id: string\n\n constructor(\n event: Event,\n id = uuid(),\n stats: CoreStats = new NullStats(),\n logger = new CoreLogger()\n ) {\n this.event = event\n this._id = id\n this.logger = logger\n this.stats = stats\n }\n\n static system(): void {\n // This should be overridden by the subclass to return an instance of the subclass.\n }\n\n isSame(other: CoreContext): boolean {\n return other.id === this.id\n }\n\n cancel(error?: Error | ContextCancelation): never {\n if (error) {\n throw error\n }\n\n throw new ContextCancelation({ reason: 'Context Cancel' })\n }\n\n log(level: LogLevel, message: string, extras?: object): void {\n this.logger.log(level, message, extras)\n }\n\n get id(): string {\n return this._id\n }\n\n updateEvent(path: string, val: unknown): Event {\n // Don't allow integrations that are set to false to be overwritten with integration settings.\n if (path.split('.')[0] === 'integrations') {\n const integrationName = path.split('.')[1]\n\n if (this.event.integrations?.[integrationName] === false) {\n return this.event\n }\n }\n\n dset(this.event, path, val)\n return this.event\n }\n\n failedDelivery(): ContextFailedDelivery | undefined {\n return this._failedDelivery\n }\n\n setFailedDelivery(options: ContextFailedDelivery) {\n this._failedDelivery = options\n }\n\n logs(): LogMessage[] {\n return this.logger.logs\n }\n\n flush(): void {\n this.logger.flush()\n this.stats.flush()\n }\n\n toJSON(): SerializedContext {\n return {\n id: this._id,\n event: this.event,\n logs: this.logger.logs,\n metrics: this.stats.metrics,\n }\n }\n}\n","import { Emitter } from '@segment/analytics-generic-utils'\nimport { backoff } from './backoff'\n\n/**\n * @internal\n */\nexport const ON_REMOVE_FROM_FUTURE = 'onRemoveFromFuture'\n\ninterface QueueItem {\n id: string\n}\n\nexport class PriorityQueue extends Emitter {\n protected future: Item[] = []\n protected queue: Item[]\n protected seen: Record\n\n public maxAttempts: number\n\n constructor(\n maxAttempts: number,\n queue: Item[],\n seen?: Record\n ) {\n super()\n this.maxAttempts = maxAttempts\n this.queue = queue\n this.seen = seen ?? {}\n }\n\n push(...items: Item[]): boolean[] {\n const accepted = items.map((operation) => {\n const attempts = this.updateAttempts(operation)\n\n if (attempts > this.maxAttempts || this.includes(operation)) {\n return false\n }\n\n this.queue.push(operation)\n return true\n })\n\n this.queue = this.queue.sort(\n (a, b) => this.getAttempts(a) - this.getAttempts(b)\n )\n return accepted\n }\n\n pushWithBackoff(item: Item): boolean {\n if (this.getAttempts(item) === 0) {\n return this.push(item)[0]\n }\n\n const attempt = this.updateAttempts(item)\n\n if (attempt > this.maxAttempts || this.includes(item)) {\n return false\n }\n\n const timeout = backoff({ attempt: attempt - 1 })\n\n setTimeout(() => {\n this.queue.push(item)\n // remove from future list\n this.future = this.future.filter((f) => f.id !== item.id)\n // Lets listeners know that a 'future' message is now available in the queue\n this.emit(ON_REMOVE_FROM_FUTURE)\n }, timeout)\n\n this.future.push(item)\n return true\n }\n\n public getAttempts(item: Item): number {\n return this.seen[item.id] ?? 0\n }\n\n public updateAttempts(item: Item): number {\n this.seen[item.id] = this.getAttempts(item) + 1\n return this.getAttempts(item)\n }\n\n includes(item: Item): boolean {\n return (\n this.queue.includes(item) ||\n this.future.includes(item) ||\n Boolean(this.queue.find((i) => i.id === item.id)) ||\n Boolean(this.future.find((i) => i.id === item.id))\n )\n }\n\n pop(): Item | undefined {\n return this.queue.shift()\n }\n\n public get length(): number {\n return this.queue.length\n }\n\n public get todo(): number {\n return this.queue.length + this.future.length\n }\n}\n","type BackoffParams = {\n /** The number of milliseconds before starting the first retry. Default is 500 */\n minTimeout?: number\n\n /** The maximum number of milliseconds between two retries. Default is Infinity */\n maxTimeout?: number\n\n /** The exponential factor to use. Default is 2. */\n factor?: number\n\n /** The current attempt */\n attempt: number\n}\n\nexport function backoff(params: BackoffParams): number {\n const random = Math.random() + 1\n const {\n minTimeout = 500,\n factor = 2,\n attempt,\n maxTimeout = Infinity,\n } = params\n return Math.min(random * minTimeout * Math.pow(factor, attempt), maxTimeout)\n}\n","import { CoreContext, ContextCancelation } from '../context'\nimport { CorePlugin } from '../plugins'\n\nasync function tryAsync(fn: () => T | Promise): Promise {\n try {\n return await fn()\n } catch (err) {\n return Promise.reject(err)\n }\n}\n\nexport function attempt(\n ctx: Ctx,\n plugin: CorePlugin\n): Promise {\n ctx.log('debug', 'plugin', { plugin: plugin.name })\n const start = new Date().getTime()\n\n const hook = plugin[ctx.event.type]\n if (hook === undefined) {\n return Promise.resolve(ctx)\n }\n\n const newCtx = tryAsync(() => hook.apply(plugin, [ctx]))\n .then((ctx) => {\n const done = new Date().getTime() - start\n ctx.stats.gauge('plugin_time', done, [`plugin:${plugin.name}`])\n\n return ctx\n })\n .catch((err: Error | ContextCancelation) => {\n if (\n err instanceof ContextCancelation &&\n err.type === 'middleware_cancellation'\n ) {\n throw err\n }\n\n if (err instanceof ContextCancelation) {\n ctx.log('warn', err.type, {\n plugin: plugin.name,\n error: err,\n })\n\n return err\n }\n\n ctx.log('error', 'plugin Error', {\n plugin: plugin.name,\n error: err,\n })\n ctx.stats.increment('plugin_error', 1, [`plugin:${plugin.name}`])\n\n return err\n })\n\n return newCtx\n}\n\nexport function ensure(\n ctx: Ctx,\n plugin: CorePlugin\n): Promise {\n return attempt(ctx, plugin).then((newContext) => {\n if (newContext instanceof CoreContext) {\n return newContext\n }\n\n ctx.log('debug', 'Context canceled')\n ctx.stats.increment('context_canceled')\n ctx.cancel(newContext)\n })\n}\n","type CompactMetricType = 'g' | 'c'\n\nexport type CoreMetricType = 'gauge' | 'counter'\n\nexport interface CoreMetric {\n metric: string\n value: number\n type: CoreMetricType\n tags: string[]\n timestamp: number // unit milliseconds\n}\n\nexport interface CompactMetric {\n m: string // metric name\n v: number // value\n k: CompactMetricType\n t: string[] // tags\n e: number // timestamp in unit milliseconds\n}\n\nconst compactMetricType = (type: CoreMetricType): CompactMetricType => {\n const enums: Record = {\n gauge: 'g',\n counter: 'c',\n }\n return enums[type]\n}\n\nexport abstract class CoreStats {\n metrics: CoreMetric[] = []\n increment(metric: string, by = 1, tags?: string[]): void {\n this.metrics.push({\n metric,\n value: by,\n tags: tags ?? [],\n type: 'counter',\n timestamp: Date.now(),\n })\n }\n\n gauge(metric: string, value: number, tags?: string[]): void {\n this.metrics.push({\n metric,\n value,\n tags: tags ?? [],\n type: 'gauge',\n timestamp: Date.now(),\n })\n }\n\n flush(): void {\n const formatted = this.metrics.map((m) => ({\n ...m,\n tags: m.tags.join(','),\n }))\n // ie doesn't like console.table\n if (console.table) {\n console.table(formatted)\n } else {\n console.log(formatted)\n }\n this.metrics = []\n }\n\n /**\n * compact keys for smaller payload\n */\n serialize(): CompactMetric[] {\n return this.metrics.map((m) => {\n return {\n m: m.metric,\n v: m.value,\n t: m.tags,\n k: compactMetricType(m.type),\n e: m.timestamp,\n }\n })\n }\n}\n\nexport class NullStats extends CoreStats {\n override gauge(..._args: Parameters) {}\n override increment(..._args: Parameters) {}\n override flush(..._args: Parameters) {}\n override serialize(..._args: Parameters) {\n return []\n }\n}\n","export function isString(obj: unknown): obj is string {\n return typeof obj === 'string'\n}\n\nexport function isNumber(obj: unknown): obj is number {\n return typeof obj === 'number'\n}\n\nexport function isFunction(obj: unknown): obj is Function {\n return typeof obj === 'function'\n}\n\nexport function exists(val: unknown): val is NonNullable {\n return val !== undefined && val !== null\n}\n\nexport function isPlainObject(\n obj: unknown\n): obj is Record {\n return (\n Object.prototype.toString.call(obj).slice(8, -1).toLowerCase() === 'object'\n )\n}\n","/**\n * Return a promise that can be externally resolved\n */\nexport const createDeferred = () => {\n let resolve!: (value: T | PromiseLike) => void\n let reject!: (reason: any) => void\n let settled = false\n const promise = new Promise((_resolve, _reject) => {\n resolve = (...args) => {\n settled = true\n _resolve(...args)\n }\n reject = (...args) => {\n settled = true\n _reject(...args)\n }\n })\n\n return {\n resolve,\n reject,\n promise,\n isSettled: () => settled,\n }\n}\n","type EventName = string\ntype EventFnArgs = any[]\ntype EmitterContract = Record\n\nexport interface EmitterOptions {\n /** How many event listeners for a particular event before emitting a warning (0 = disabled)\n * @default 10\n **/\n maxListeners?: number\n}\n\n/**\n * Event Emitter that takes the expected contract as a generic\n * @example\n * ```ts\n * type Contract = {\n * delivery_success: [DeliverySuccessResponse, Metrics],\n * delivery_failure: [DeliveryError]\n * }\n * new Emitter()\n * .on('delivery_success', (res, metrics) => ...)\n * .on('delivery_failure', (err) => ...)\n * ```\n */\nexport class Emitter {\n maxListeners: number\n constructor(options?: EmitterOptions) {\n this.maxListeners = options?.maxListeners ?? 10\n }\n private callbacks: Partial = {}\n private warned = false\n\n private warnIfPossibleMemoryLeak(\n event: EventName\n ) {\n if (this.warned) {\n return\n }\n if (\n this.maxListeners &&\n this.callbacks[event]!.length > this.maxListeners\n ) {\n console.warn(\n `Event Emitter: Possible memory leak detected; ${String(\n event\n )} has exceeded ${this.maxListeners} listeners.`\n )\n this.warned = true\n }\n }\n\n on(\n event: EventName,\n callback: (...args: Contract[EventName]) => void\n ): this {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [callback] as Contract[EventName]\n } else {\n this.callbacks[event]!.push(callback)\n this.warnIfPossibleMemoryLeak(event)\n }\n return this\n }\n\n once(\n event: EventName,\n callback: (...args: Contract[EventName]) => void\n ): this {\n const on = (...args: Contract[EventName]): void => {\n this.off(event, on)\n callback.apply(this, args)\n }\n\n this.on(event, on)\n return this\n }\n\n off(\n event: EventName,\n callback: (...args: Contract[EventName]) => void\n ): this {\n const fns = this.callbacks[event] ?? []\n const without = fns.filter((fn) => fn !== callback) as Contract[EventName]\n this.callbacks[event] = without\n return this\n }\n\n emit(\n event: EventName,\n ...args: Contract[EventName]\n ): this {\n const callbacks = this.callbacks[event] ?? []\n callbacks.forEach((callback) => {\n callback.apply(this, args)\n })\n return this\n }\n}\n","import { isBrowser } from '../environment'\n\nexport function isOnline(): boolean {\n if (isBrowser()) {\n return window.navigator.onLine\n }\n\n return true\n}\n\nexport function isOffline(): boolean {\n return !isOnline()\n}\n","export const SEGMENT_API_HOST = 'api.segment.io/v1'\n","import {\n CoreContext,\n ContextCancelation,\n ContextFailedDelivery,\n SerializedContext,\n CancelationOptions,\n} from '@segment/analytics-core'\nimport { SegmentEvent } from '../events/interfaces'\nimport { Stats } from '../stats'\n\nexport class Context extends CoreContext {\n static override system() {\n return new this({ type: 'track', event: 'system' })\n }\n constructor(event: SegmentEvent, id?: string) {\n super(event, id, new Stats())\n }\n}\n\nexport { ContextCancelation }\nexport type { ContextFailedDelivery, SerializedContext, CancelationOptions }\n","export function isBrowser(): boolean {\n return typeof window !== 'undefined'\n}\n\nexport function isServer(): boolean {\n return !isBrowser()\n}\n","/**\n * Tries to gets the unencoded version of an encoded component of a\n * Uniform Resource Identifier (URI). If input string is malformed,\n * returns it back as-is.\n *\n * Note: All occurences of the `+` character become ` ` (spaces).\n **/\nexport function gracefulDecodeURIComponent(\n encodedURIComponent: string\n): string {\n try {\n return decodeURIComponent(encodedURIComponent.replace(/\\+/g, ' '))\n } catch {\n return encodedURIComponent\n }\n}\n","import { fetch } from '../../lib/fetch'\nimport { version } from '../../generated/version'\nimport { getVersionType } from '../../lib/version-type'\nimport { SEGMENT_API_HOST } from '../constants'\n\nexport interface MetricsOptions {\n host?: string\n sampleRate?: number\n flushTimer?: number\n maxQueueSize?: number\n protocol?: 'http' | 'https'\n}\n\n/**\n * Type expected by the segment metrics API endpoint\n */\ntype RemoteMetric = {\n type: 'Counter'\n metric: string\n value: 1\n tags: {\n library: string\n library_version: string\n [key: string]: string\n }\n}\n\nconst createRemoteMetric = (\n metric: string,\n tags: string[],\n versionType: 'web' | 'npm'\n): RemoteMetric => {\n const formattedTags = tags.reduce((acc, t) => {\n const [k, v] = t.split(':')\n acc[k] = v\n return acc\n }, {} as Record)\n\n return {\n type: 'Counter',\n metric,\n value: 1,\n tags: {\n ...formattedTags,\n library: 'analytics.js',\n library_version:\n versionType === 'web' ? `next-${version}` : `npm:next-${version}`,\n },\n }\n}\n\nfunction logError(err: unknown): void {\n console.error('Error sending segment performance metrics', err)\n}\n\nexport class RemoteMetrics {\n private host: string\n private flushTimer: number\n private maxQueueSize: number\n private protocol: string\n\n sampleRate: number\n queue: RemoteMetric[]\n\n constructor(options?: MetricsOptions) {\n this.host = options?.host ?? SEGMENT_API_HOST\n this.sampleRate = options?.sampleRate ?? 1\n this.flushTimer = options?.flushTimer ?? 30 * 1000 /* 30s */\n this.maxQueueSize = options?.maxQueueSize ?? 20\n this.protocol = options?.protocol ?? 'https'\n\n this.queue = []\n\n if (this.sampleRate > 0) {\n let flushing = false\n\n const run = (): void => {\n if (flushing) {\n return\n }\n\n flushing = true\n this.flush().catch(logError)\n\n flushing = false\n\n setTimeout(run, this.flushTimer)\n }\n run()\n }\n }\n\n increment(metric: string, tags: string[]): void {\n // All metrics are part of an allow list in Tracking API\n if (!metric.includes('analytics_js.')) {\n return\n }\n\n // /m doesn't like empty tags\n if (tags.length === 0) {\n return\n }\n\n if (Math.random() > this.sampleRate) {\n return\n }\n\n if (this.queue.length >= this.maxQueueSize) {\n return\n }\n\n const remoteMetric = createRemoteMetric(metric, tags, getVersionType())\n this.queue.push(remoteMetric)\n\n if (metric.includes('error')) {\n this.flush().catch(logError)\n }\n }\n\n async flush(): Promise {\n if (this.queue.length <= 0) {\n return\n }\n\n await this.send().catch((error) => {\n logError(error)\n this.sampleRate = 0\n })\n }\n\n private async send(): Promise {\n const payload = { series: this.queue }\n this.queue = []\n\n const headers = { 'Content-Type': 'text/plain' }\n const url = `${this.protocol}://${this.host}/m`\n\n return fetch(url, {\n headers,\n body: JSON.stringify(payload),\n method: 'POST',\n })\n }\n}\n","import { CoreStats } from '@segment/analytics-core'\nimport { MetricsOptions, RemoteMetrics } from './remote-metrics'\n\nlet remoteMetrics: RemoteMetrics | undefined\n\nexport class Stats extends CoreStats {\n static initRemoteMetrics(options?: MetricsOptions) {\n remoteMetrics = new RemoteMetrics(options)\n }\n\n override increment(metric: string, by?: number, tags?: string[]): void {\n super.increment(metric, by, tags)\n remoteMetrics?.increment(metric, tags ?? [])\n }\n}\n","import { Context } from '../context'\n\nexport interface RecordIntegrationMetricProps {\n integrationName: string\n methodName: string\n didError?: boolean\n type: 'classic' | 'action'\n}\n\nexport function recordIntegrationMetric(\n ctx: Context,\n {\n methodName,\n integrationName,\n type,\n didError = false,\n }: RecordIntegrationMetricProps\n): void {\n ctx.stats.increment(\n `analytics_js.integration.invoke${didError ? '.error' : ''}`,\n 1,\n [\n `method:${methodName}`,\n `integration_name:${integrationName}`,\n `type:${type}`,\n ]\n )\n}\n","// This file is generated.\nexport const version = '1.72.1'\n","export default function(url, options) {\n\toptions = options || {};\n\treturn new Promise( (resolve, reject) => {\n\t\tconst request = new XMLHttpRequest();\n\t\tconst keys = [];\n\t\tconst all = [];\n\t\tconst headers = {};\n\n\t\tconst response = () => ({\n\t\t\tok: (request.status/100|0) == 2,\t\t// 200-299\n\t\t\tstatusText: request.statusText,\n\t\t\tstatus: request.status,\n\t\t\turl: request.responseURL,\n\t\t\ttext: () => Promise.resolve(request.responseText),\n\t\t\tjson: () => Promise.resolve(request.responseText).then(JSON.parse),\n\t\t\tblob: () => Promise.resolve(new Blob([request.response])),\n\t\t\tclone: response,\n\t\t\theaders: {\n\t\t\t\tkeys: () => keys,\n\t\t\t\tentries: () => all,\n\t\t\t\tget: n => headers[n.toLowerCase()],\n\t\t\t\thas: n => n.toLowerCase() in headers\n\t\t\t}\n\t\t});\n\n\t\trequest.open(options.method || 'get', url, true);\n\n\t\trequest.onload = () => {\n\t\t\trequest.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm, (m, key, value) => {\n\t\t\t\tkeys.push(key = key.toLowerCase());\n\t\t\t\tall.push([key, value]);\n\t\t\t\theaders[key] = headers[key] ? `${headers[key]},${value}` : value;\n\t\t\t});\n\t\t\tresolve(response());\n\t\t};\n\n\t\trequest.onerror = reject;\n\n\t\trequest.withCredentials = options.credentials=='include';\n\n\t\tfor (const i in options.headers) {\n\t\t\trequest.setRequestHeader(i, options.headers[i]);\n\t\t}\n\n\t\trequest.send(options.body || null);\n\t});\n}\n","import unfetch from 'unfetch'\nimport { getGlobal } from './get-global'\n\n/**\n * Wrapper around native `fetch` containing `unfetch` fallback.\n */\nexport const fetch: typeof global.fetch = (...args) => {\n const global = getGlobal()\n return ((global && global.fetch) || unfetch)(...args)\n}\n","// This an imperfect polyfill for globalThis\nexport const getGlobal = () => {\n if (typeof globalThis !== 'undefined') {\n return globalThis\n }\n if (typeof self !== 'undefined') {\n return self\n }\n if (typeof window !== 'undefined') {\n return window\n }\n if (typeof global !== 'undefined') {\n return global\n }\n return null\n}\n","import { AnalyticsSnippet } from '../browser/standalone-interface'\n\n/**\n * Stores the global window analytics key\n */\nlet _globalAnalyticsKey = 'analytics'\n\n/**\n * Gets the global analytics/buffer\n * @param key name of the window property where the buffer is stored (default: analytics)\n * @returns AnalyticsSnippet\n */\nexport function getGlobalAnalytics(): AnalyticsSnippet | undefined {\n return (window as any)[_globalAnalyticsKey]\n}\n\n/**\n * Replaces the global window key for the analytics/buffer object\n * @param key key name\n */\nexport function setGlobalAnalyticsKey(key: string) {\n _globalAnalyticsKey = key\n}\n\n/**\n * Sets the global analytics object\n * @param analytics analytics snippet\n */\nexport function setGlobalAnalytics(analytics: AnalyticsSnippet): void {\n ;(window as any)[_globalAnalyticsKey] = analytics\n}\n","function findScript(src: string): HTMLScriptElement | undefined {\n const scripts = Array.prototype.slice.call(\n window.document.querySelectorAll('script')\n )\n return scripts.find((s) => s.src === src)\n}\n\nexport function loadScript(\n src: string,\n attributes?: Record\n): Promise {\n const found = findScript(src)\n\n if (found !== undefined) {\n const status = found?.getAttribute('status')\n\n if (status === 'loaded') {\n return Promise.resolve(found)\n }\n\n if (status === 'loading') {\n return new Promise((resolve, reject) => {\n found.addEventListener('load', () => resolve(found))\n found.addEventListener('error', (err) => reject(err))\n })\n }\n }\n\n return new Promise((resolve, reject) => {\n const script = window.document.createElement('script')\n\n script.type = 'text/javascript'\n script.src = src\n script.async = true\n\n script.setAttribute('status', 'loading')\n for (const [k, v] of Object.entries(attributes ?? {})) {\n script.setAttribute(k, v)\n }\n\n script.onload = (): void => {\n script.onerror = script.onload = null\n script.setAttribute('status', 'loaded')\n resolve(script)\n }\n\n script.onerror = (): void => {\n script.onerror = script.onload = null\n script.setAttribute('status', 'error')\n reject(new Error(`Failed to load ${src}`))\n }\n\n const tag = window.document.getElementsByTagName('script')[0]\n tag.parentElement?.insertBefore(script, tag)\n })\n}\n\nexport function unloadScript(src: string): Promise {\n const found = findScript(src)\n\n if (found !== undefined) {\n found.remove()\n }\n\n return Promise.resolve()\n}\n","import { JSONObject, Options } from '../core/events/interfaces'\nimport { CDNSettings } from '../browser'\n\n/**\n * Merge legacy settings and initialized Integration option overrides.\n *\n * This will merge any options that were passed from initialization into\n * overrides for settings that are returned by the Segment CDN.\n *\n * i.e. this allows for passing options directly into destinations from\n * the Analytics constructor.\n */\nexport function mergedOptions(\n cdnSettings: CDNSettings,\n options: Options\n): Record {\n const optionOverrides = Object.entries(options.integrations ?? {}).reduce(\n (overrides, [integration, options]) => {\n if (typeof options === 'object') {\n return {\n ...overrides,\n [integration]: options,\n }\n }\n\n return {\n ...overrides,\n [integration]: {},\n }\n },\n {} as Record\n )\n\n return Object.entries(cdnSettings.integrations).reduce(\n (integrationSettings, [integration, settings]) => {\n return {\n ...integrationSettings,\n [integration]: {\n ...settings,\n ...optionOverrides[integration],\n },\n }\n },\n {} as Record\n )\n}\n","export const pWhile = async (\n condition: (value: T | undefined) => boolean,\n action: () => T | PromiseLike\n): Promise => {\n const loop = async (actionResult: T | undefined): Promise => {\n if (condition(actionResult)) {\n return loop(await action())\n }\n }\n\n return loop(undefined)\n}\n","import { getGlobalAnalytics } from './global-analytics-helper'\nimport { embeddedWriteKey } from './embedded-write-key'\n\nconst analyticsScriptRegex =\n /(https:\\/\\/.*)\\/analytics\\.js\\/v1\\/(?:.*?)\\/(?:platform|analytics.*)?/\nconst getCDNUrlFromScriptTag = (): string | undefined => {\n let cdn: string | undefined\n const scripts = Array.prototype.slice.call(\n document.querySelectorAll('script')\n )\n scripts.forEach((s) => {\n const src = s.getAttribute('src') ?? ''\n const result = analyticsScriptRegex.exec(src)\n\n if (result && result[1]) {\n cdn = result[1]\n }\n })\n return cdn\n}\n\nlet _globalCDN: string | undefined // set globalCDN as in-memory singleton\nconst getGlobalCDNUrl = (): string | undefined => {\n const result = _globalCDN ?? getGlobalAnalytics()?._cdn\n return result\n}\n\nexport const setGlobalCDNUrl = (cdn: string) => {\n const globalAnalytics = getGlobalAnalytics()\n if (globalAnalytics) {\n globalAnalytics._cdn = cdn\n }\n _globalCDN = cdn\n}\n\nexport const getCDN = (): string => {\n const globalCdnUrl = getGlobalCDNUrl()\n\n if (globalCdnUrl) return globalCdnUrl\n\n const cdnFromScriptTag = getCDNUrlFromScriptTag()\n\n if (cdnFromScriptTag) {\n return cdnFromScriptTag\n } else {\n // it's possible that the CDN is not found in the page because:\n // - the script is loaded through a proxy\n // - the script is removed after execution\n // in this case, we fall back to the default Segment CDN\n return `https://cdn.segment.com`\n }\n}\n\nexport const getNextIntegrationsURL = () => {\n const cdn = getCDN()\n return `${cdn}/next-integrations`\n}\n\n/**\n * Replaces the CDN URL in the script tag with the one from Analytics.js 1.0\n *\n * @returns the path to Analytics JS 1.0\n **/\nexport function getLegacyAJSPath(): string {\n const writeKey = embeddedWriteKey() ?? getGlobalAnalytics()?._writeKey\n\n const scripts = Array.prototype.slice.call(\n document.querySelectorAll('script')\n )\n let path: string | undefined = undefined\n\n for (const s of scripts) {\n const src = s.getAttribute('src') ?? ''\n const result = analyticsScriptRegex.exec(src)\n\n if (result && result[1]) {\n path = src\n break\n }\n }\n\n if (path) {\n return path.replace('analytics.min.js', 'analytics.classic.js')\n }\n\n return `https://cdn.segment.com/analytics.js/v1/${writeKey}/analytics.classic.js`\n}\n","import { PriorityQueue } from '.'\nimport { Context, SerializedContext } from '../../core/context'\nimport { isBrowser } from '../../core/environment'\n\nlet loc:\n | Storage\n | { getItem: () => void; setItem: () => void; removeItem: () => void } = {\n getItem() {},\n setItem() {},\n removeItem() {},\n}\n\ntry {\n loc = isBrowser() && window.localStorage ? window.localStorage : loc\n} catch (err) {\n console.warn('Unable to access localStorage', err)\n}\n\nfunction persisted(key: string): Context[] {\n const items = loc.getItem(key)\n return (items ? JSON.parse(items) : []).map(\n (p: SerializedContext) => new Context(p.event, p.id)\n )\n}\n\nfunction persistItems(key: string, items: Context[]): void {\n const existing = persisted(key)\n const all = [...items, ...existing]\n\n const merged = all.reduce((acc, item) => {\n return {\n ...acc,\n [item.id]: item,\n }\n }, {} as Record)\n\n loc.setItem(key, JSON.stringify(Object.values(merged)))\n}\n\nfunction seen(key: string): Record {\n const stored = loc.getItem(key)\n return stored ? JSON.parse(stored) : {}\n}\n\nfunction persistSeen(key: string, memory: Record): void {\n const stored = seen(key)\n\n loc.setItem(\n key,\n JSON.stringify({\n ...stored,\n ...memory,\n })\n )\n}\n\nfunction remove(key: string): void {\n loc.removeItem(key)\n}\n\nconst now = (): number => new Date().getTime()\n\nfunction mutex(key: string, onUnlock: Function, attempt = 0): void {\n const lockTimeout = 50\n const lockKey = `persisted-queue:v1:${key}:lock`\n\n const expired = (lock: number): boolean => new Date().getTime() > lock\n const rawLock = loc.getItem(lockKey)\n const lock = rawLock ? (JSON.parse(rawLock) as number) : null\n\n const allowed = lock === null || expired(lock)\n if (allowed) {\n loc.setItem(lockKey, JSON.stringify(now() + lockTimeout))\n onUnlock()\n loc.removeItem(lockKey)\n return\n }\n\n if (!allowed && attempt < 3) {\n setTimeout(() => {\n mutex(key, onUnlock, attempt + 1)\n }, lockTimeout)\n } else {\n console.error('Unable to retrieve lock')\n }\n}\n\nexport class PersistedPriorityQueue extends PriorityQueue {\n constructor(maxAttempts: number, key: string) {\n super(maxAttempts, [])\n\n const itemsKey = `persisted-queue:v1:${key}:items`\n const seenKey = `persisted-queue:v1:${key}:seen`\n\n let saved: Context[] = []\n let lastSeen: Record = {}\n\n mutex(key, () => {\n try {\n saved = persisted(itemsKey)\n lastSeen = seen(seenKey)\n remove(itemsKey)\n remove(seenKey)\n\n this.queue = [...saved, ...this.queue]\n this.seen = { ...lastSeen, ...this.seen }\n } catch (err) {\n console.error(err)\n }\n })\n\n window.addEventListener('pagehide', () => {\n // we deliberately want to use the less powerful 'pagehide' API to only persist on events where the analytics instance gets destroyed, and not on tab away.\n if (this.todo > 0) {\n const items = [...this.queue, ...this.future]\n try {\n mutex(key, () => {\n persistItems(itemsKey, items)\n persistSeen(seenKey, this.seen)\n })\n } catch (err) {\n console.error(err)\n }\n }\n })\n }\n}\n","import {\n Alias,\n Facade,\n Group,\n Identify,\n Options,\n Page,\n Screen,\n Track,\n} from '@segment/facade'\nimport { SegmentEvent } from '../core/events'\n\nexport type SegmentFacade = Facade & {\n obj: SegmentEvent\n}\n\nexport function toFacade(evt: SegmentEvent, options?: Options): SegmentFacade {\n let fcd = new Facade(evt, options)\n\n if (evt.type === 'track') {\n fcd = new Track(evt, options)\n }\n\n if (evt.type === 'identify') {\n fcd = new Identify(evt, options)\n }\n\n if (evt.type === 'page') {\n fcd = new Page(evt, options)\n }\n\n if (evt.type === 'alias') {\n fcd = new Alias(evt, options)\n }\n\n if (evt.type === 'group') {\n fcd = new Group(evt, options)\n }\n\n if (evt.type === 'screen') {\n fcd = new Screen(evt, options)\n }\n\n Object.defineProperty(fcd, 'obj', {\n value: evt,\n writable: true,\n })\n\n return fcd as SegmentFacade\n}\n","// Default value will be updated to 'web' in `bundle-umd.ts` for web build.\nlet _version: 'web' | 'npm' = 'npm'\n\nexport function setVersionType(version: typeof _version) {\n _version = version\n}\n\nexport function getVersionType(): typeof _version {\n return _version\n}\n","import { Context, ContextCancelation } from '../../core/context'\nimport { SegmentEvent } from '../../core/events'\nimport { Plugin } from '../../core/plugin'\nimport { SegmentFacade, toFacade } from '../../lib/to-facade'\n\nexport interface MiddlewareParams {\n payload: SegmentFacade\n\n integrations?: SegmentEvent['integrations']\n next: (payload: MiddlewareParams['payload'] | null) => void\n}\n\nexport interface DestinationMiddlewareParams {\n payload: SegmentFacade\n integration: string\n next: (payload: MiddlewareParams['payload'] | null) => void\n}\n\nexport type MiddlewareFunction = (\n middleware: MiddlewareParams\n) => void | Promise\n\nexport type DestinationMiddlewareFunction = (\n middleware: DestinationMiddlewareParams\n) => void | Promise\n\nexport async function applyDestinationMiddleware(\n destination: string,\n evt: SegmentEvent,\n middleware: DestinationMiddlewareFunction[]\n): Promise {\n // Clone the event so mutations are localized to a single destination.\n let modifiedEvent = toFacade(evt, {\n clone: true,\n traverse: false,\n }).rawEvent() as SegmentEvent\n async function applyMiddleware(\n event: SegmentEvent,\n fn: DestinationMiddlewareFunction\n ): Promise {\n let nextCalled = false\n let returnedEvent: SegmentEvent | null = null\n\n await fn({\n payload: toFacade(event, {\n clone: true,\n traverse: false,\n }),\n integration: destination,\n next(evt) {\n nextCalled = true\n\n if (evt === null) {\n returnedEvent = null\n }\n\n if (evt) {\n returnedEvent = evt.obj\n }\n },\n })\n\n if (!nextCalled && returnedEvent !== null) {\n returnedEvent = returnedEvent as SegmentEvent\n returnedEvent.integrations = {\n ...event.integrations,\n [destination]: false,\n }\n }\n\n return returnedEvent\n }\n\n for (const md of middleware) {\n const result = await applyMiddleware(modifiedEvent, md)\n if (result === null) {\n return null\n }\n modifiedEvent = result\n }\n\n return modifiedEvent\n}\n\nexport function sourceMiddlewarePlugin(\n fn: MiddlewareFunction,\n integrations: SegmentEvent['integrations']\n): Plugin {\n async function apply(ctx: Context): Promise {\n let nextCalled = false\n\n await fn({\n payload: toFacade(ctx.event, {\n clone: true,\n traverse: false,\n }),\n integrations: integrations ?? {},\n next(evt) {\n nextCalled = true\n if (evt) {\n ctx.event = evt.obj\n }\n },\n })\n\n if (!nextCalled) {\n throw new ContextCancelation({\n retry: false,\n type: 'middleware_cancellation',\n reason: 'Middleware `next` function skipped',\n })\n }\n\n return ctx\n }\n\n return {\n name: `Source Middleware ${fn.name}`,\n type: 'before',\n version: '0.1.0',\n\n isLoaded: (): boolean => true,\n load: (ctx): Promise => Promise.resolve(ctx),\n\n track: apply,\n page: apply,\n identify: apply,\n alias: apply,\n group: apply,\n }\n}\n","\"use strict\";\n\nimport get from \"obj-case\";\n\nfunction trait(a, b) {\n return function () {\n // @ts-ignore\n let traits = this.traits();\n // @ts-ignore\n let props = this.properties ? this.properties() : {};\n\n return (\n get(traits, \"address.\" + a) ||\n get(traits, a) ||\n (b ? get(traits, \"address.\" + b) : null) ||\n (b ? get(traits, b) : null) ||\n get(props, \"address.\" + a) ||\n get(props, a) ||\n (b ? get(props, \"address.\" + b) : null) ||\n (b ? get(props, b) : null)\n );\n };\n}\n\n/**\n * Add address getters to `proto`.\n *\n * @ignore\n * @param {Function} proto\n */\nexport default function (proto) {\n proto.zip = trait(\"postalCode\", \"zip\");\n proto.country = trait(\"country\");\n proto.street = trait(\"street\");\n proto.state = trait(\"state\");\n proto.city = trait(\"city\");\n proto.region = trait(\"region\");\n}\n","\"use strict\";\n\nimport inherit from \"inherits\";\nimport { Facade } from \"./facade\";\n\n/**\n * Initialize a new `Alias` facade with a `dictionary` of arguments.\n *\n * @param {Object} dictionary - The object to wrap.\n * @param {string} [dictionary.from] - The previous ID of the user.\n * @param {string} [dictionary.to] - The new ID of the user.\n * @param {Object} opts - Options about what kind of Facade to create.\n *\n * @augments Facade\n */\nexport function Alias(dictionary, opts) {\n Facade.call(this, dictionary, opts);\n}\n\ninherit(Alias, Facade);\n\n/**\n * Return the type of facade this is. This will always return `\"alias\"`.\n *\n * @return {string}\n */\nAlias.prototype.action = function () {\n return \"alias\";\n};\n\n/**\n * An alias for {@link Alias#action}.\n *\n * @function\n * @return {string}\n */\nAlias.prototype.type = Alias.prototype.action;\n\n/**\n * Get the user's previous ID from `previousId` or `from`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\nAlias.prototype.previousId = function () {\n return this.field(\"previousId\") || this.field(\"from\");\n};\n\n/**\n * An alias for {@link Alias#previousId}.\n *\n * @function\n * @return {string}\n */\nAlias.prototype.from = Alias.prototype.previousId;\n\n/**\n * Get the user's new ID from `userId` or `to`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\nAlias.prototype.userId = function () {\n return this.field(\"userId\") || this.field(\"to\");\n};\n\n/**\n * An alias for {@link Alias#userId}.\n *\n * @function\n * @return {string}\n */\nAlias.prototype.to = Alias.prototype.userId;\n","export function clone(properties) {\n if (typeof properties !== 'object') return properties\n\n if (Object.prototype.toString.call(properties) === '[object Object]') {\n const temp = {};\n for (const key in properties) {\n if (Object.prototype.hasOwnProperty.call(properties, key)) {\n temp[key] = clone(properties[key]);\n }\n }\n return temp;\n } else if (Array.isArray(properties)) {\n return properties.map(clone);\n } else {\n // this is dangerous because it means this is not cloned\n return properties;\n }\n}\n","\"use strict\";\n\nimport inherit from \"inherits\";\nimport { Facade } from \"./facade\";\n\n/**\n * Initialize a new `Delete` facade with a `dictionary` of arguments.\n *\n * @param {Object} dictionary - The object to wrap.\n * @param {string} [dictionary.category] - The delete category.\n * @param {string} [dictionary.name] - The delete name.\n * @param {string} [dictionary.properties] - The delete properties.\n * @param {Object} opts - Options about what kind of Facade to create.\n *\n * @augments Facade\n */\nexport function Delete(dictionary, opts) {\n Facade.call(this, dictionary, opts);\n}\n\ninherit(Delete, Facade);\n\n/**\n * Return the type of facade this is. This will always return `\"delete\"`.\n *\n * @return {string}\n */\nDelete.prototype.type = function () {\n return \"delete\";\n};\n","\"use strict\";\n\nimport address from \"./address\";\nimport { clone } from \"./clone\";\nimport isEnabled from \"./is-enabled\";\nimport newDate from \"new-date\";\nimport objCase from \"obj-case\";\nimport traverse from \"@segment/isodate-traverse\";\n\n/**\n * A *Facade* is an object meant for creating convience wrappers around\n * objects. When developing integrations, you probably want to look at its\n * subclasses, such as {@link Track} or {@link Identify}, rather than this\n * general-purpose class.\n *\n * This letructor will initialize a new `Facade` with an `obj` of arguments.\n *\n * If the inputted `obj` doesn't have a `timestamp` property, one will be added\n * with the value `new Date()`. Otherwise, the `timestamp` property will be\n * converted to a Date using the `new-date` package.\n *\n * By default, the inputted object will be defensively copied, and all ISO\n * strings present in the string will be converted into Dates.\n *\n * @param {Object} obj - The object to wrap.\n * @param {Object} opts - Options about what kind of Facade to create.\n * @param {boolean} [opts.clone=true] - Whether to make defensive clones. If enabled,\n * the inputted object will be cloned, and any objects derived from this facade\n * will be cloned before being returned.\n * @param {boolean} [opts.traverse=true] - Whether to perform ISODate-Traverse\n * on the inputted object.\n *\n * @see {@link https://github.com/segmentio/new-date|new-date}\n * @see {@link https://github.com/segmentio/isodate-traverse|isodate-traverse}\n */\nexport function Facade (obj, opts) {\n opts = opts || {};\n this.raw = clone(obj);\n if (!(\"clone\" in opts)) opts.clone = true;\n if (opts.clone) obj = clone(obj);\n if (!(\"traverse\" in opts)) opts.traverse = true;\n if (!(\"timestamp\" in obj)) obj.timestamp = new Date();\n else obj.timestamp = newDate(obj.timestamp);\n if (opts.traverse) traverse(obj);\n this.opts = opts;\n this.obj = obj;\n}\n\nconst f = Facade.prototype;\n\n/**\n * Get a potentially-nested field in this facade. `field` should be a\n * period-separated sequence of properties.\n *\n * If the first field passed in points to a function (e.g. the `field` passed\n * in is `a.b.c` and this facade's `obj.a` is a function), then that function\n * will be called, and then the deeper fields will be fetched (using obj-case)\n * from what that function returns. If the first field isn't a function, then\n * this function works just like obj-case.\n *\n * Because this function uses obj-case, the camel- or snake-case of the input\n * is irrelevant.\n *\n * @example\n * YourClass.prototype.height = function() {\n * return this.proxy('getDimensions.height') ||\n * this.proxy('props.size.side_length');\n * }\n * @param {string} field - A sequence of properties, joined by periods (`.`).\n * @return {*} - A property of the inputted object.\n * @see {@link https://github.com/segmentio/obj-case|obj-case}\n */\nf.proxy = function(field) {\n let fields = field.split(\".\");\n field = fields.shift();\n\n // Call a function at the beginning to take advantage of facaded fields\n let obj = this[field] || this.obj[field];\n if (!obj) return obj;\n if (typeof obj === \"function\") obj = obj.call(this) || {};\n if (fields.length === 0) return this.opts.clone ? transform(obj) : obj;\n\n obj = objCase(obj, fields.join(\".\"));\n return this.opts.clone ? transform(obj) : obj;\n};\n\n/**\n * Directly access a specific `field` from the underlying object. Only\n * \"top-level\" fields will work with this function. \"Nested\" fields *will not\n * work* with this function.\n *\n * @param {string} field\n * @return {*}\n */\nf.field = function(field) {\n let obj = this.obj[field];\n return this.opts.clone ? transform(obj) : obj;\n};\n\n/**\n * Utility method to always proxy a particular `field`. In other words, it\n * returns a function that will always return `this.proxy(field)`.\n *\n * @example\n * MyClass.prototype.height = Facade.proxy('options.dimensions.height');\n *\n * @param {string} field\n * @return {Function}\n */\nFacade.proxy = function(field) {\n return function() {\n return this.proxy(field);\n };\n};\n\n/**\n * Utility method to always access a `field`. In other words, it returns a\n * function that will always return `this.field(field)`.\n *\n * @param {string} field\n * @return {Function}\n */\nFacade.field = function(field) {\n return function() {\n return this.field(field);\n };\n};\n\n/**\n * Create a helper function for fetching a \"plural\" thing.\n *\n * The generated method will take the inputted `path` and append an \"s\" to it\n * and calls `this.proxy` with this \"pluralized\" path. If that produces an\n * array, that will be returned. Otherwise, a one-element array containing\n * `this.proxy(path)` will be returned.\n *\n * @example\n * MyClass.prototype.birds = Facade.multi('animals.bird');\n *\n * @param {string} path\n * @return {Function}\n */\nFacade.multi = function(path) {\n return function() {\n let multi = this.proxy(path + \"s\");\n if (Array.isArray(multi)) return multi;\n let one = this.proxy(path);\n if (one) one = [this.opts.clone ? clone(one) : one];\n return one || [];\n };\n};\n\n/**\n * Create a helper function for getting a \"singular\" thing.\n *\n * The generated method will take the inputted path and call\n * `this.proxy(path)`. If a truthy thing is produced, it will be returned.\n * Otherwise, `this.proxy(path + 's')` will be called, and if that produces an\n * array the first element of that array will be returned. Otherwise,\n * `undefined` is returned.\n *\n * @example\n * MyClass.prototype.bird = Facade.one('animals.bird');\n *\n * @param {string} path\n * @return {Function}\n */\nFacade.one = function(path) {\n return function() {\n let one = this.proxy(path);\n if (one) return one;\n let multi = this.proxy(path + \"s\");\n if (Array.isArray(multi)) return multi[0];\n };\n};\n\n/**\n * Gets the underlying object this facade wraps around.\n *\n * If this facade has a property `type`, it will be invoked as a function and\n * will be assigned as the property `type` of the outputted object.\n *\n * @return {Object}\n */\nf.json = function() {\n let ret = this.opts.clone ? clone(this.obj) : this.obj;\n if (this.type) ret.type = this.type();\n return ret;\n};\n\n/**\n * Gets a copy of the unmodified input object this facade wraps around.\n * \n * Unlike the `json` method which does make some subtle modifications \n * to datetime values and the `type` property. This method returns a copy of \n * the unmodified input object\n * \n * @return {Object}\n */\nf.rawEvent = function() {\n return this.raw;\n};\n\n/**\n * Get the options of a call. If an integration is passed, only the options for\n * that integration are included. If the integration is not enabled, then\n * `undefined` is returned.\n *\n * Options are taken from the `options` property of the underlying object,\n * falling back to the object's `context` or simply `{}`.\n *\n * @param {string} integration - The name of the integration to get settings\n * for. Casing does not matter.\n * @return {Object|undefined}\n */\nf.options = function(integration) {\n let obj = this.obj.options || this.obj.context || {};\n let options = this.opts.clone ? clone(obj) : obj;\n if (!integration) return options;\n if (!this.enabled(integration)) return;\n let integrations = this.integrations();\n let value = integrations[integration] || objCase(integrations, integration);\n if (typeof value !== \"object\") value = objCase(this.options(), integration);\n return typeof value === \"object\" ? value : {};\n};\n\n/**\n * An alias for {@link Facade#options}.\n */\nf.context = f.options;\n\n/**\n * Check whether an integration is enabled.\n *\n * Basically, this method checks whether this integration is explicitly\n * enabled. If it isn'texplicitly mentioned, it checks whether it has been\n * enabled at the global level. Some integrations (e.g. Salesforce), cannot\n * enabled by these global event settings.\n *\n * More concretely, the deciding factors here are:\n *\n * 1. If `this.integrations()` has the integration set to `true`, return `true`.\n * 2. If `this.integrations().providers` has the integration set to `true`, return `true`.\n * 3. If integrations are set to default-disabled via global parameters (i.e.\n * `options.providers.all`, `options.all`, or `integrations.all`), then return\n * false.\n * 4. If the integration is one of the special default-deny integrations\n * (currently, only Salesforce), then return false.\n * 5. Else, return true.\n *\n * @param {string} integration\n * @return {boolean}\n */\nf.enabled = function(integration) {\n let allEnabled = this.proxy(\"options.providers.all\");\n if (typeof allEnabled !== \"boolean\") allEnabled = this.proxy(\"options.all\");\n if (typeof allEnabled !== \"boolean\")\n allEnabled = this.proxy(\"integrations.all\");\n if (typeof allEnabled !== \"boolean\") allEnabled = true;\n\n let enabled = allEnabled && isEnabled(integration);\n let options = this.integrations();\n\n // If the integration is explicitly enabled or disabled, use that\n // First, check options.providers for backwards compatibility\n if (options.providers && options.providers.hasOwnProperty(integration)) {\n enabled = options.providers[integration];\n }\n\n // Next, check for the integration's existence in 'options' to enable it.\n // If the settings are a boolean, use that, otherwise it should be enabled.\n if (options.hasOwnProperty(integration)) {\n let settings = options[integration];\n if (typeof settings === \"boolean\") {\n enabled = settings;\n } else {\n enabled = true;\n }\n }\n\n return !!enabled;\n};\n\n/**\n * Get all `integration` options.\n *\n * @ignore\n * @param {string} integration\n * @return {Object}\n */\nf.integrations = function() {\n return (\n this.obj.integrations || this.proxy(\"options.providers\") || this.options()\n );\n};\n\n/**\n * Check whether the user is active.\n *\n * @return {boolean}\n */\nf.active = function() {\n let active = this.proxy(\"options.active\");\n if (active === null || active === undefined) active = true;\n return active;\n};\n\n/**\n * Get `sessionId / anonymousId`.\n *\n * @return {*}\n */\nf.anonymousId = function() {\n return this.field(\"anonymousId\") || this.field(\"sessionId\");\n};\n\n/**\n * An alias for {@link Facade#anonymousId}.\n *\n * @function\n * @return {string}\n */\nf.sessionId = f.anonymousId;\n\n/**\n * Get `groupId` from `context.groupId`.\n *\n * @function\n * @return {string}\n */\nf.groupId = Facade.proxy(\"options.groupId\");\n\n/**\n * Get the call's \"traits\". All event types can pass in traits, though {@link\n * Identify} and {@link Group} override this implementation.\n *\n * Traits are gotten from `options.traits`, augmented with a property `id` with\n * the event's `userId`.\n *\n * The parameter `aliases` is meant to transform keys in `options.traits` into\n * new keys. Each alias like `{ \"xxx\": \"yyy\" }` will take whatever is at `xxx`\n * in the traits, and move it to `yyy`. If `xxx` is a method of this facade,\n * it'll be called as a function instead of treated as a key into the traits.\n *\n * @example\n * let obj = { options: { traits: { foo: \"bar\" } }, anonymousId: \"xxx\" }\n * let facade = new Facade(obj)\n *\n * facade.traits() // { \"foo\": \"bar\" }\n * facade.traits({ \"foo\": \"asdf\" }) // { \"asdf\": \"bar\" }\n * facade.traits({ \"sessionId\": \"rofl\" }) // { \"rofl\": \"xxx\" }\n *\n * @param {Object} aliases - A mapping from keys to the new keys they should be\n * transformed to.\n * @return {Object}\n */\nf.traits = function(aliases) {\n let ret = this.proxy(\"options.traits\") || {};\n let id = this.userId();\n aliases = aliases || {};\n\n if (id) ret.id = id;\n\n for (const alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n const value = this[alias] == null\n ? this.proxy(\"options.traits.\" + alias)\n : this[alias]();\n if (value == null) continue;\n ret[aliases[alias]] = value;\n delete ret[alias];\n }\n }\n\n return ret;\n};\n\n/**\n * The library and version of the client used to produce the message.\n *\n * If the library name cannot be determined, it is set to `\"unknown\"`. If the\n * version cannot be determined, it is set to `null`.\n *\n * @return {{name: string, version: string}}\n */\nf.library = function() {\n let library = this.proxy(\"options.library\");\n if (!library) return { name: \"unknown\", version: null };\n if (typeof library === \"string\") return { name: library, version: null };\n return library;\n};\n\n/**\n * Return the device information, falling back to an empty object.\n *\n * Interesting values of `type` are `\"ios\"` and `\"android\"`, but other values\n * are possible if the client is doing something unusual with `context.device`.\n *\n * @return {{type: string}}\n */\nf.device = function() {\n let device = this.proxy(\"context.device\");\n if (typeof device !== \"object\" || device === null) {\n device = {};\n }\n let library = this.library().name;\n if (device.type) return device;\n\n if (library.indexOf(\"ios\") > -1) device.type = \"ios\";\n if (library.indexOf(\"android\") > -1) device.type = \"android\";\n return device;\n};\n\n/**\n * Get the User-Agent from `context.userAgent`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return string\n */\nf.userAgent = Facade.proxy(\"context.userAgent\");\n\n/**\n * Get the timezone from `context.timezone`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return string\n */\nf.timezone = Facade.proxy(\"context.timezone\");\n\n/**\n * Get the timestamp from `context.timestamp`.\n *\n * @function\n * @return string\n */\nf.timestamp = Facade.field(\"timestamp\");\n\n/**\n * Get the channel from `channel`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return string\n */\nf.channel = Facade.field(\"channel\");\n\n/**\n * Get the IP address from `context.ip`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return string\n */\nf.ip = Facade.proxy(\"context.ip\");\n\n/**\n * Get the user ID from `userId`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return string\n */\nf.userId = Facade.field(\"userId\");\n\n/**\n * Get the ZIP/Postal code from `traits`, `traits.address`, `properties`, or\n * `properties.address`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @name zip\n * @function\n * @memberof f\n * @return {string}\n */\n\n/**\n * Get the country from `traits`, `traits.address`, `properties`, or\n * `properties.address`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @name country\n * @function\n * @memberof f\n * @return {string}\n */\n\n/**\n * Get the street from `traits`, `traits.address`, `properties`, or\n * `properties.address`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @name street\n * @function\n * @memberof f\n * @return {string}\n */\n\n/**\n * Get the state from `traits`, `traits.address`, `properties`, or\n * `properties.address`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @name state\n * @function\n * @memberof f\n * @return {string}\n */\n\n/**\n * Get the city from `traits`, `traits.address`, `properties`, or\n * `properties.address`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @name city\n * @function\n * @memberof f\n * @return {string}\n */\n\n/**\n * Get the region from `traits`, `traits.address`, `properties`, or\n * `properties.address`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @name region\n * @function\n * @memberof f\n * @return {string}\n */\n\naddress(f);\n\n/**\n * Return the cloned and traversed object\n *\n * @ignore\n * @param {*} obj\n * @return {*}\n */\nfunction transform (obj) {\n return clone(obj);\n}\n","\"use strict\";\n\nimport inherit from \"inherits\";\nimport isEmail from \"./is-email\";\nimport newDate from \"new-date\";\nimport { Facade } from \"./facade\";\n\n/**\n * Initialize a new `Group` facade with a `dictionary` of arguments.\n *\n * @param {Object} dictionary - The object to wrap.\n * @param {string} [dictionary.userId] - The user to add to the group.\n * @param {string} [dictionary.groupId] - The ID of the group.\n * @param {Object} [dictionary.traits] - The traits of the group.\n * @param {Object} opts - Options about what kind of Facade to create.\n *\n * @augments Facade\n */\nexport function Group(dictionary, opts) {\n Facade.call(this, dictionary, opts);\n}\n\ninherit(Group, Facade);\n\nconst g = Group.prototype;\n\n/**\n * Return the type of facade this is. This will always return `\"group\"`.\n *\n * @return {string}\n */\ng.action = function () {\n return \"group\";\n};\n\n/**\n * An alias for {@link Group#action}.\n *\n * @function\n * @return {string}\n */\ng.type = g.action;\n\n/**\n * Get the group ID from `groupId`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\ng.groupId = Facade.field(\"groupId\");\n\n/**\n * Get the time of creation of the group from `traits.createdAt`,\n * `traits.created`, `properties.createdAt`, or `properties.created`.\n *\n * @return {Date}\n */\ng.created = function () {\n var created =\n this.proxy(\"traits.createdAt\") ||\n this.proxy(\"traits.created\") ||\n this.proxy(\"properties.createdAt\") ||\n this.proxy(\"properties.created\");\n\n if (created) return newDate(created);\n};\n\n/**\n * Get the group's email from `traits.email`, falling back to `groupId` only if\n * it looks like a valid email.\n *\n * @return {string}\n */\ng.email = function () {\n var email = this.proxy(\"traits.email\");\n if (email) return email;\n var groupId = this.groupId();\n if (isEmail(groupId)) return groupId;\n};\n\n/**\n * Get the group's traits. This is identical to how {@link Facade#traits}\n * works, except it looks at `traits.*` instead of `options.traits.*`.\n *\n * Traits are gotten from `traits`, augmented with a property `id` with\n * the event's `groupId`.\n *\n * The parameter `aliases` is meant to transform keys in `traits` into new\n * keys. Each alias like `{ \"xxx\": \"yyy\" }` will take whatever is at `xxx` in\n * the traits, and move it to `yyy`. If `xxx` is a method of this facade, it'll\n * be called as a function instead of treated as a key into the traits.\n *\n * @example\n * var obj = { traits: { foo: \"bar\" }, anonymousId: \"xxx\" }\n * var group = new Group(obj)\n *\n * group.traits() // { \"foo\": \"bar\" }\n * group.traits({ \"foo\": \"asdf\" }) // { \"asdf\": \"bar\" }\n * group.traits({ \"sessionId\": \"rofl\" }) // { \"rofl\": \"xxx\" }\n *\n * @param {Object} aliases - A mapping from keys to the new keys they should be\n * transformed to.\n * @return {Object}\n */\ng.traits = function (aliases) {\n var ret = this.properties();\n var id = this.groupId();\n aliases = aliases || {};\n\n if (id) ret.id = id;\n\n for (const alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n const value = this[alias] == null\n ? this.proxy(\"traits.\" + alias)\n : this[alias]();\n if (value == null) continue;\n ret[aliases[alias]] = value;\n delete ret[alias];\n }\n }\n\n return ret;\n};\n\n/**\n * Get the group's name from `traits.name`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {string}\n */\ng.name = Facade.proxy(\"traits.name\");\n\n/**\n * Get the group's industry from `traits.industry`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {string}\n */\ng.industry = Facade.proxy(\"traits.industry\");\n\n/**\n * Get the group's employee count from `traits.employees`.\n *\n * This *should* be a number, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {number}\n */\ng.employees = Facade.proxy(\"traits.employees\");\n\n/**\n * Get the group's properties from `traits` or `properties`, falling back to\n * simply an empty object.\n *\n * @return {Object}\n */\ng.properties = function () {\n // TODO remove this function\n return this.field(\"traits\") || this.field(\"properties\") || {};\n};\n","\"use strict\";\n\nimport { Facade } from \"./facade\";\nimport get from \"obj-case\";\nimport inherit from \"inherits\";\nimport isEmail from \"./is-email\";\nimport newDate from \"new-date\";\n\nlet trim = (str) => str.trim();\n\n/**\n * Initialize a new `Identify` facade with a `dictionary` of arguments.\n *\n * @param {Object} dictionary - The object to wrap.\n * @param {string} [dictionary.userId] - The ID of the user.\n * @param {string} [dictionary.anonymousId] - The anonymous ID of the user.\n * @param {string} [dictionary.traits] - The user's traits.\n * @param {Object} opts - Options about what kind of Facade to create.\n *\n * @augments Facade\n */\nexport function Identify(dictionary, opts) {\n Facade.call(this, dictionary, opts);\n}\n\ninherit(Identify, Facade);\n\nconst i = Identify.prototype;\n\n/**\n * Return the type of facade this is. This will always return `\"identify\"`.\n *\n * @return {string}\n */\ni.action = function () {\n return \"identify\";\n};\n\n/**\n * An alias for {@link Identify#action}.\n *\n * @function\n * @return {string}\n */\ni.type = i.action;\n\n/**\n * Get the user's traits. This is identical to how {@link Facade#traits} works,\n * except it looks at `traits.*` instead of `options.traits.*`.\n *\n * Traits are gotten from `traits`, augmented with a property `id` with\n * the event's `userId`.\n *\n * The parameter `aliases` is meant to transform keys in `traits` into new\n * keys. Each alias like `{ \"xxx\": \"yyy\" }` will take whatever is at `xxx` in\n * the traits, and move it to `yyy`. If `xxx` is a method of this facade, it'll\n * be called as a function instead of treated as a key into the traits.\n *\n * @example\n * let obj = { traits: { foo: \"bar\" }, anonymousId: \"xxx\" }\n * let identify = new Identify(obj)\n *\n * identify.traits() // { \"foo\": \"bar\" }\n * identify.traits({ \"foo\": \"asdf\" }) // { \"asdf\": \"bar\" }\n * identify.traits({ \"sessionId\": \"rofl\" }) // { \"rofl\": \"xxx\" }\n *\n * @param {Object} aliases - A mapping from keys to the new keys they should be\n * transformed to.\n * @return {Object}\n */\ni.traits = function (aliases) {\n let ret = this.field(\"traits\") || {};\n let id = this.userId();\n aliases = aliases || {};\n\n if (id) ret.id = id;\n\n for (let alias in aliases) {\n let value =\n this[alias] == null ? this.proxy(\"traits.\" + alias) : this[alias]();\n if (value == null) continue;\n ret[aliases[alias]] = value;\n if (alias !== aliases[alias]) delete ret[alias];\n }\n\n return ret;\n};\n\n/**\n * Get the user's email from `traits.email`, falling back to `userId` only if\n * it looks like a valid email.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\ni.email = function () {\n let email = this.proxy(\"traits.email\");\n if (email) return email;\n\n let userId = this.userId();\n if (isEmail(userId)) return userId;\n};\n\n/**\n * Get the time of creation of the user from `traits.created` or\n * `traits.createdAt`.\n *\n * @return {Date}\n */\ni.created = function () {\n let created = this.proxy(\"traits.created\") || this.proxy(\"traits.createdAt\");\n if (created) return newDate(created);\n};\n\n/**\n * Get the time of creation of the user's company from `traits.company.created`\n * or `traits.company.createdAt`.\n *\n * @return {Date}\n */\ni.companyCreated = function () {\n let created =\n this.proxy(\"traits.company.created\") ||\n this.proxy(\"traits.company.createdAt\");\n\n if (created) {\n return newDate(created);\n }\n};\n\n/**\n * Get the user's company name from `traits.company.name`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\ni.companyName = function () {\n return this.proxy(\"traits.company.name\");\n};\n\n/**\n * Get the user's name `traits.name`, falling back to combining {@link\n * Identify#firstName} and {@link Identify#lastName} if possible.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\ni.name = function () {\n let name = this.proxy(\"traits.name\");\n if (typeof name === \"string\") {\n return trim(name);\n }\n\n let firstName = this.firstName();\n let lastName = this.lastName();\n if (firstName && lastName) {\n return trim(firstName + \" \" + lastName);\n }\n};\n\n/**\n * Get the user's first name from `traits.firstName`, optionally splitting it\n * out of a the full name if that's all that was provided.\n *\n * Splitting the full name works on the assumption that the full name is of the\n * form \"FirstName LastName\"; it will not work for non-Western names.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\ni.firstName = function () {\n let firstName = this.proxy(\"traits.firstName\");\n if (typeof firstName === \"string\") {\n return trim(firstName);\n }\n\n let name = this.proxy(\"traits.name\");\n if (typeof name === \"string\") {\n return trim(name).split(\" \")[0];\n }\n};\n\n/**\n * Get the user's last name from `traits.lastName`, optionally splitting it out\n * of a the full name if that's all that was provided.\n *\n * Splitting the full name works on the assumption that the full name is of the\n * form \"FirstName LastName\"; it will not work for non-Western names.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\ni.lastName = function () {\n let lastName = this.proxy(\"traits.lastName\");\n if (typeof lastName === \"string\") {\n return trim(lastName);\n }\n\n let name = this.proxy(\"traits.name\");\n if (typeof name !== \"string\") {\n return;\n }\n\n let space = trim(name).indexOf(\" \");\n if (space === -1) {\n return;\n }\n\n return trim(name.substr(space + 1));\n};\n\n/**\n * Get the user's \"unique id\" from `userId`, `traits.username`, or\n * `traits.email`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\ni.uid = function () {\n return this.userId() || this.username() || this.email();\n};\n\n/**\n * Get the user's description from `traits.description` or `traits.background`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\ni.description = function () {\n return this.proxy(\"traits.description\") || this.proxy(\"traits.background\");\n};\n\n/**\n * Get the user's age from `traits.age`, falling back to computing it from\n * `traits.birthday` and the current time.\n *\n * @return {number}\n */\ni.age = function () {\n let date = this.birthday();\n let age = get(this.traits(), \"age\");\n if (age != null) return age;\n if (!(date instanceof Date)) return;\n let now = new Date();\n return now.getFullYear() - date.getFullYear();\n};\n\n/**\n * Get the URL of the user's avatar from `traits.avatar`, `traits.photoUrl`, or\n * `traits.avatarUrl`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\ni.avatar = function () {\n let traits = this.traits();\n return (\n get(traits, \"avatar\") || get(traits, \"photoUrl\") || get(traits, \"avatarUrl\")\n );\n};\n\n/**\n * Get the user's job position from `traits.position` or `traits.jobTitle`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\ni.position = function () {\n let traits = this.traits();\n return get(traits, \"position\") || get(traits, \"jobTitle\");\n};\n\n/**\n * Get the user's username from `traits.username`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {string}\n */\ni.username = Facade.proxy(\"traits.username\");\n\n/**\n * Get the user's website from `traits.website`, or if there are multiple in\n * `traits.websites`, return the first one.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {string}\n */\ni.website = Facade.one(\"traits.website\");\n\n/**\n * Get the user's websites from `traits.websites`, or if there is only one in\n * `traits.website`, then wrap it in an array.\n *\n * This *should* be an array of strings, but may not be if the client isn't\n * adhering to the spec.\n *\n * @function\n * @return {array}\n */\ni.websites = Facade.multi(\"traits.website\");\n\n/**\n * Get the user's phone number from `traits.phone`, or if there are multiple in\n * `traits.phones`, return the first one.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {string}\n */\ni.phone = Facade.one(\"traits.phone\");\n\n/**\n * Get the user's phone numbers from `traits.phones`, or if there is only one\n * in `traits.phone`, then wrap it in an array.\n *\n * This *should* be an array of strings, but may not be if the client isn't\n * adhering to the spec.\n *\n * @function\n * @return {array}\n */\ni.phones = Facade.multi(\"traits.phone\");\n\n/**\n * Get the user's address from `traits.address`.\n *\n * This *should* be an object, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {object}\n */\ni.address = Facade.proxy(\"traits.address\");\n\n/**\n * Get the user's gender from `traits.gender`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {string}\n */\ni.gender = Facade.proxy(\"traits.gender\");\n\n/**\n * Get the user's birthday from `traits.birthday`.\n *\n * This *should* be a Date if `opts.traverse` was enabled (it is by default)\n * when letructing this Identify. Otherwise, it should be a string. But it\n * may be neither if the client isn't adhering to the spec.\n * spec.\n *\n * @function\n * @return {object}\n */\ni.birthday = Facade.proxy(\"traits.birthday\");\n","\"use strict\";\n\nimport { Facade } from \"./facade\";\nimport { Alias } from \"./alias\";\nimport { Group } from \"./group\";\nimport { Identify } from \"./identify\";\nimport { Track } from \"./track\";\nimport { Page } from \"./page\";\nimport { Screen } from \"./screen\";\nimport { Delete } from \"./delete\";\n\nexport default {\n ...Facade,\n Alias,\n Group,\n Identify,\n Track,\n Page,\n Screen,\n Delete,\n};\n\nexport { Facade, Alias, Group, Identify, Track, Page, Screen, Delete };\n","const matcher = /.+\\@.+\\..+/;\n\nexport default function isEmail(string) {\n return matcher.test(string);\n}\n","\"use strict\";\n\n// A few integrations are disabled by default. They must be explicitly enabled\n// by setting options[Provider] = true.\nlet disabled = {\n Salesforce: true,\n};\n\n/**\n * Check whether an integration should be enabled by default.\n *\n * @ignore\n * @param {string} integration\n * @return {boolean}\n */\nexport default function (integration) {\n return !disabled[integration];\n}\n","\"use strict\";\n\nimport inherit from \"inherits\";\nimport { Facade } from \"./facade\";\nimport { Track } from \"./track\";\nimport isEmail from \"./is-email\";\n\n/**\n * Initialize a new `Page` facade with a `dictionary` of arguments.\n *\n * @param {Object} dictionary - The object to wrap.\n * @param {string} [dictionary.category] - The page category.\n * @param {string} [dictionary.name] - The page name.\n * @param {string} [dictionary.properties] - The page properties.\n * @param {Object} opts - Options about what kind of Facade to create.\n *\n * @augments Facade\n */\nexport function Page(dictionary, opts) {\n Facade.call(this, dictionary, opts);\n}\n\ninherit(Page, Facade);\n\nconst p = Page.prototype;\n\n/**\n * Return the type of facade this is. This will always return `\"page\"`.\n *\n * @return {string}\n */\np.action = function () {\n return \"page\";\n};\n\n/**\n * An alias for {@link Page#action}.\n *\n * @function\n * @return {string}\n */\np.type = p.action;\n\n/**\n * Get the page category from `category`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\np.category = Facade.field(\"category\");\n\n/**\n * Get the page name from `name`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\np.name = Facade.field(\"name\");\n\n/**\n * Get the page title from `properties.title`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\np.title = Facade.proxy(\"properties.title\");\n\n/**\n * Get the page path from `properties.path`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\np.path = Facade.proxy(\"properties.path\");\n\n/**\n * Get the page URL from `properties.url`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\np.url = Facade.proxy(\"properties.url\");\n\n/**\n * Get the HTTP referrer from `context.referrer.url`, `context.page.referrer`,\n * or `properties.referrer`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\np.referrer = function () {\n return (\n this.proxy(\"context.referrer.url\") ||\n this.proxy(\"context.page.referrer\") ||\n this.proxy(\"properties.referrer\")\n );\n};\n\n/**\n * Get the page's properties. This is identical to how {@link Facade#traits}\n * works, except it looks at `properties.*` instead of `options.traits.*`.\n *\n * Properties are gotten from `properties`, augmented with the page's `name`\n * and `category`.\n *\n * The parameter `aliases` is meant to transform keys in `properties` into new\n * keys. Each alias like `{ \"xxx\": \"yyy\" }` will take whatever is at `xxx` in\n * the traits, and move it to `yyy`. If `xxx` is a method of this facade, it'll\n * be called as a function instead of treated as a key into the traits.\n *\n * @example\n * let obj = { properties: { foo: \"bar\" }, anonymousId: \"xxx\" }\n * let page = new Page(obj)\n *\n * page.traits() // { \"foo\": \"bar\" }\n * page.traits({ \"foo\": \"asdf\" }) // { \"asdf\": \"bar\" }\n * page.traits({ \"sessionId\": \"rofl\" }) // { \"rofl\": \"xxx\" }\n *\n * @param {Object} aliases - A mapping from keys to the new keys they should be\n * transformed to.\n * @return {Object}\n */\np.properties = function (aliases) {\n let props = this.field(\"properties\") || {};\n let category = this.category();\n let name = this.name();\n aliases = aliases || {};\n\n if (category) props.category = category;\n if (name) props.name = name;\n\n for (const alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n const value = this[alias] == null\n ? this.proxy(\"properties.\" + alias)\n : this[alias]();\n if (value == null) continue;\n props[aliases[alias]] = value;\n if (alias !== aliases[alias]) delete props[alias];\n }\n }\n\n return props;\n};\n\n/**\n * Get the user's email from `context.traits.email` or `properties.email`,\n * falling back to `userId` if it's a valid email.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\np.email = function () {\n let email =\n this.proxy(\"context.traits.email\") || this.proxy(\"properties.email\");\n if (email) return email;\n\n let userId = this.userId();\n if (isEmail(userId)) return userId;\n};\n\n/**\n * Get the page fullName. This is `$category $name` if both are present, and\n * just `name` otherwiser.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\np.fullName = function () {\n let category = this.category();\n let name = this.name();\n return name && category ? category + \" \" + name : name;\n};\n\n/**\n * Get an event name from this page call. If `name` is present, this will be\n * `Viewed $name Page`; otherwise, it will be `Loaded a Page`.\n *\n * @param {string} name - The name of this page.\n * @return {string}\n */\np.event = function (name) {\n return name ? \"Viewed \" + name + \" Page\" : \"Loaded a Page\";\n};\n\n/**\n * Convert this Page to a {@link Track} facade. The inputted `name` will be\n * converted to the Track's event name via {@link Page#event}.\n *\n * @param {string} name\n * @return {Track}\n */\np.track = function (name) {\n let json = this.json();\n json.event = this.event(name);\n json.timestamp = this.timestamp();\n json.properties = this.properties();\n return new Track(json, this.opts);\n};\n","\"use strict\";\n\nimport inherit from \"inherits\";\nimport { Page } from \"./page\";\nimport { Track } from \"./track\";\n\n/**\n * Initialize a new `Screen` facade with a `dictionary` of arguments.\n *\n * Note that this class extends {@link Page}, so its methods are available to\n * instances of this class as well.\n *\n * @param {Object} dictionary - The object to wrap.\n * @param {string} [dictionary.category] - The page category.\n * @param {string} [dictionary.name] - The page name.\n * @param {string} [dictionary.properties] - The page properties.\n * @param {Object} opts - Options about what kind of Facade to create.\n *\n * @augments Page\n */\nexport function Screen(dictionary, opts) {\n Page.call(this, dictionary, opts);\n}\n\ninherit(Screen, Page);\n\n/**\n * Return the type of facade this is. This will always return `\"screen\"`.\n *\n * @return {string}\n */\nScreen.prototype.action = function () {\n return \"screen\";\n};\n\n/**\n * An alias for {@link Screen#action}.\n *\n * @function\n * @return {string}\n */\nScreen.prototype.type = Screen.prototype.action;\n\n/**\n * Get an event name from this screen call. If `name` is present, this will be\n * `Viewed $name Screen`; otherwise, it will be `Loaded a Screen`.\n *\n * @param {string} name - The name of this screen.\n * @return {string}\n */\nScreen.prototype.event = function (name) {\n return name ? \"Viewed \" + name + \" Screen\" : \"Loaded a Screen\";\n};\n\n/**\n * Convert this Screen to a {@link Track} facade. The inputted `name` will be\n * converted to the Track's event name via {@link Screen#event}.\n *\n * @param {string} name\n * @return {Track}\n */\nScreen.prototype.track = function (name) {\n let json = this.json();\n json.event = this.event(name);\n json.timestamp = this.timestamp();\n json.properties = this.properties();\n return new Track(json, this.opts);\n};\n","\"use strict\";\n\nimport inherit from \"inherits\";\nimport { Facade } from \"./facade\";\nimport { Identify } from \"./identify\";\nimport isEmail from \"./is-email\";\nimport get from \"obj-case\";\n\n/**\n * Initialize a new `Track` facade with a `dictionary` of arguments.\n *\n * @param {Object} dictionary - The object to wrap.\n * @param {string} [dictionary.event] - The name of the event being tracked.\n * @param {string} [dictionary.userId] - The ID of the user being tracked.\n * @param {string} [dictionary.anonymousId] - The anonymous ID of the user.\n * @param {string} [dictionary.properties] - Properties of the track event.\n * @param {Object} opts - Options about what kind of Facade to create.\n *\n * @augments Facade\n */\nexport function Track(dictionary, opts) {\n Facade.call(this, dictionary, opts);\n}\n\ninherit(Track, Facade);\n\nlet t = Track.prototype;\n\n/**\n * Return the type of facade this is. This will always return `\"track\"`.\n *\n * @return {string}\n */\nt.action = function () {\n return \"track\";\n};\n\n/**\n * An alias for {@link Track#action}.\n *\n * @function\n * @return {string}\n */\nt.type = t.action;\n\n/**\n * Get the event name from `event`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {string}\n */\nt.event = Facade.field(\"event\");\n\n/**\n * Get the event value, usually the monetary value, from `properties.value`.\n *\n * This *should* be a number, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {number}\n */\nt.value = Facade.proxy(\"properties.value\");\n\n/**\n * Get the event cateogry from `properties.category`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {string}\n */\nt.category = Facade.proxy(\"properties.category\");\n\n/**\n * Get the event ID from `properties.id`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {string}\n */\nt.id = Facade.proxy(\"properties.id\");\n\n/**\n * Get the product ID from `properties.productId`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\nt.productId = function () {\n return (\n this.proxy(\"properties.product_id\") || this.proxy(\"properties.productId\")\n );\n};\n\n/**\n * Get the promotion ID from `properties.promotionId`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\nt.promotionId = function () {\n return (\n this.proxy(\"properties.promotion_id\") ||\n this.proxy(\"properties.promotionId\")\n );\n};\n\n/**\n * Get the cart ID from `properties.cartId`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\nt.cartId = function () {\n return this.proxy(\"properties.cart_id\") || this.proxy(\"properties.cartId\");\n};\n\n/**\n * Get the checkout ID from `properties.checkoutId`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\nt.checkoutId = function () {\n return (\n this.proxy(\"properties.checkout_id\") || this.proxy(\"properties.checkoutId\")\n );\n};\n\n/**\n * Get the payment ID from `properties.paymentId`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\nt.paymentId = function () {\n return (\n this.proxy(\"properties.payment_id\") || this.proxy(\"properties.paymentId\")\n );\n};\n\n/**\n * Get the coupon ID from `properties.couponId`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\nt.couponId = function () {\n return (\n this.proxy(\"properties.coupon_id\") || this.proxy(\"properties.couponId\")\n );\n};\n\n/**\n * Get the wishlist ID from `properties.wishlistId`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\nt.wishlistId = function () {\n return (\n this.proxy(\"properties.wishlist_id\") || this.proxy(\"properties.wishlistId\")\n );\n};\n\n/**\n * Get the review ID from `properties.reviewId`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\nt.reviewId = function () {\n return (\n this.proxy(\"properties.review_id\") || this.proxy(\"properties.reviewId\")\n );\n};\n\n/**\n * Get the order ID from `properties.id` or `properties.orderId`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\nt.orderId = function () {\n // doesn't follow above convention since this fallback order was how it used to be\n return (\n this.proxy(\"properties.id\") ||\n this.proxy(\"properties.order_id\") ||\n this.proxy(\"properties.orderId\")\n );\n};\n\n/**\n * Get the SKU from `properties.sku`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {string}\n */\nt.sku = Facade.proxy(\"properties.sku\");\n\n/**\n * Get the amount of tax for this purchase from `properties.tax`.\n *\n * This *should* be a number, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {number}\n */\nt.tax = Facade.proxy(\"properties.tax\");\n\n/**\n * Get the name of this event from `properties.name`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {string}\n */\nt.name = Facade.proxy(\"properties.name\");\n\n/**\n * Get the price of this purchase from `properties.price`.\n *\n * This *should* be a number, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {number}\n */\nt.price = Facade.proxy(\"properties.price\");\n\n/**\n * Get the total for this purchase from `properties.total`.\n *\n * This *should* be a number, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {number}\n */\nt.total = Facade.proxy(\"properties.total\");\n\n/**\n * Whether this is a repeat purchase from `properties.repeat`.\n *\n * This *should* be a boolean, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {boolean}\n */\nt.repeat = Facade.proxy(\"properties.repeat\");\n\n/**\n * Get the coupon for this purchase from `properties.coupon`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {string}\n */\nt.coupon = Facade.proxy(\"properties.coupon\");\n\n/**\n * Get the shipping for this purchase from `properties.shipping`.\n *\n * This *should* be a number, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {number}\n */\nt.shipping = Facade.proxy(\"properties.shipping\");\n\n/**\n * Get the discount for this purchase from `properties.discount`.\n *\n * This *should* be a number, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {number}\n */\nt.discount = Facade.proxy(\"properties.discount\");\n\n/**\n * Get the shipping method for this purchase from `properties.shippingMethod`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\nt.shippingMethod = function () {\n return (\n this.proxy(\"properties.shipping_method\") ||\n this.proxy(\"properties.shippingMethod\")\n );\n};\n\n/**\n * Get the payment method for this purchase from `properties.paymentMethod`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\nt.paymentMethod = function () {\n return (\n this.proxy(\"properties.payment_method\") ||\n this.proxy(\"properties.paymentMethod\")\n );\n};\n\n/**\n * Get a description for this event from `properties.description`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {string}\n */\nt.description = Facade.proxy(\"properties.description\");\n\n/**\n * Get a plan, as in the plan the user is on, for this event from\n * `properties.plan`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {string}\n */\nt.plan = Facade.proxy(\"properties.plan\");\n\n/**\n * Get the subtotal for this purchase from `properties.subtotal`.\n *\n * If `properties.subtotal` isn't available, then fall back to computing the\n * total from `properties.total` or `properties.revenue`, and then subtracting\n * tax, shipping, and discounts.\n *\n * If neither subtotal, total, nor revenue are available, then return 0.\n *\n * @return {number}\n */\nt.subtotal = function () {\n let subtotal = get(this.properties(), \"subtotal\");\n let total = this.total() || this.revenue();\n\n if (subtotal) return subtotal;\n if (!total) return 0;\n\n if (this.total()) {\n let n = this.tax();\n if (n) total -= n;\n n = this.shipping();\n if (n) total -= n;\n n = this.discount();\n if (n) total += n;\n }\n\n return total;\n};\n\n/**\n * Get the products for this event from `properties.products` if it's an\n * array, falling back to an empty array.\n *\n * @return {Array}\n */\nt.products = function () {\n let props = this.properties();\n let products = get(props, \"products\");\n if (Array.isArray(products)) {\n return products.filter(item => item !== null)\n }\n return [];\n};\n\n/**\n * Get the quantity for this event from `properties.quantity`, falling back to\n * a quantity of one.\n *\n * @return {number}\n */\nt.quantity = function () {\n let props = this.obj.properties || {};\n return props.quantity || 1;\n};\n\n/**\n * Get the currency for this event from `properties.currency`, falling back to\n * \"USD\".\n *\n * @return {string}\n */\nt.currency = function () {\n let props = this.obj.properties || {};\n return props.currency || \"USD\";\n};\n\n/**\n * Get the referrer for this event from `context.referrer.url`,\n * `context.page.referrer`, or `properties.referrer`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string}\n */\nt.referrer = function () {\n // TODO re-examine whether this function is necessary\n return (\n this.proxy(\"context.referrer.url\") ||\n this.proxy(\"context.page.referrer\") ||\n this.proxy(\"properties.referrer\")\n );\n};\n\n/**\n * Get the query for this event from `options.query`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @function\n * @return {string|object}\n */\nt.query = Facade.proxy(\"options.query\");\n\n/**\n * Get the page's properties. This is identical to how {@link Facade#traits}\n * works, except it looks at `properties.*` instead of `options.traits.*`.\n *\n * Properties are gotten from `properties`.\n *\n * The parameter `aliases` is meant to transform keys in `properties` into new\n * keys. Each alias like `{ \"xxx\": \"yyy\" }` will take whatever is at `xxx` in\n * the traits, and move it to `yyy`. If `xxx` is a method of this facade, it'll\n * be called as a function instead of treated as a key into the traits.\n *\n * @example\n * let obj = { properties: { foo: \"bar\" }, anonymousId: \"xxx\" }\n * let track = new Track(obj)\n *\n * track.traits() // { \"foo\": \"bar\" }\n * track.traits({ \"foo\": \"asdf\" }) // { \"asdf\": \"bar\" }\n * track.traits({ \"sessionId\": \"rofl\" }) // { \"rofl\": \"xxx\" }\n *\n * @param {Object} aliases - A mapping from keys to the new keys they should be\n * transformed to.\n * @return {Object}\n */\nt.properties = function (aliases) {\n let ret = this.field(\"properties\") || {};\n aliases = aliases || {};\n\n for (const alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n const value = this[alias] == null\n ? this.proxy(\"properties.\" + alias)\n : this[alias]();\n if (value == null) continue;\n ret[aliases[alias]] = value;\n delete ret[alias];\n }\n }\n\n return ret;\n};\n\n/**\n * Get the username of the user for this event from `traits.username`,\n * `properties.username`, `userId`, or `anonymousId`.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string|undefined}\n */\nt.username = function () {\n return (\n this.proxy(\"traits.username\") ||\n this.proxy(\"properties.username\") ||\n this.userId() ||\n this.sessionId()\n );\n};\n\n/**\n * Get the email of the user for this event from `trais.email`,\n * `properties.email`, or `options.traits.email`, falling back to `userId` if\n * it looks like a valid email.\n *\n * This *should* be a string, but may not be if the client isn't adhering to\n * the spec.\n *\n * @return {string|undefined}\n */\nt.email = function () {\n let email =\n this.proxy(\"traits.email\") ||\n this.proxy(\"properties.email\") ||\n this.proxy(\"options.traits.email\");\n if (email) return email;\n\n let userId = this.userId();\n if (isEmail(userId)) return userId;\n};\n\n/**\n * Get the revenue for this event.\n *\n * If this is an \"Order Completed\" event, this will be the `properties.total`\n * falling back to the `properties.revenue`. For all other events, this is\n * simply taken from `properties.revenue`.\n *\n * If there are dollar signs in these properties, they will be removed. The\n * result will be parsed into a number.\n *\n * @return {number}\n */\nt.revenue = function () {\n let revenue = this.proxy(\"properties.revenue\");\n let event = this.event();\n let orderCompletedRegExp = /^[ _]?completed[ _]?order[ _]?|^[ _]?order[ _]?completed[ _]?$/i;\n\n // it's always revenue, unless it's called during an order completion.\n if (!revenue && event && event.match(orderCompletedRegExp)) {\n revenue = this.proxy(\"properties.total\");\n }\n\n return currency(revenue);\n};\n\n/**\n * Get the revenue for this event in \"cents\" -- in other words, multiply the\n * {@link Track#revenue} by 100, or return 0 if there isn't a numerical revenue\n * for this event.\n *\n * @return {number}\n */\nt.cents = function () {\n let revenue = this.revenue();\n return typeof revenue !== \"number\" ? this.value() || 0 : revenue * 100;\n};\n\n/**\n * Convert this event into an {@link Identify} facade.\n *\n * This works by taking this event's underlying object and creating an Identify\n * from it. This event's traits, taken from `options.traits`, will be used as\n * the Identify's traits.\n *\n * @return {Identify}\n */\nt.identify = function () {\n // TODO: remove me.\n let json = this.json();\n json.traits = this.traits();\n return new Identify(json, this.opts);\n};\n\n/**\n * Get float from currency value.\n *\n * @ignore\n * @param {*} val\n * @return {number}\n */\nfunction currency(val) {\n if (!val) return;\n if (typeof val === \"number\") {\n return val;\n }\n if (typeof val !== \"string\") {\n return;\n }\n\n val = val.replace(/\\$/g, \"\");\n val = parseFloat(val);\n\n if (!isNaN(val)) {\n return val;\n }\n}\n","'use strict';\n\nvar isodate = require('@segment/isodate');\n\n/**\n * Expose `traverse`.\n */\nmodule.exports = traverse;\n\n/**\n * Recursively traverse an object or array, and convert\n * all ISO date strings parse into Date objects.\n *\n * @param {Object} input - object, array, or string to convert\n * @param {Boolean} strict - only convert strings with year, month, and date\n * @return {Object}\n */\nfunction traverse(input, strict) {\n if (strict === undefined) strict = true;\n if (input && typeof input === 'object') {\n return traverseObject(input, strict);\n } else if (Array.isArray(input)) {\n return traverseArray(input, strict);\n } else if (isodate.is(input, strict)) {\n return isodate.parse(input);\n }\n return input;\n}\n\n/**\n * Object traverser helper function.\n *\n * @param {Object} obj - object to traverse\n * @param {Boolean} strict - only convert strings with year, month, and date\n * @return {Object}\n */\nfunction traverseObject(obj, strict) {\n Object.keys(obj).forEach(function(key) {\n obj[key] = traverse(obj[key], strict);\n });\n return obj;\n}\n\n/**\n * Array traverser helper function\n *\n * @param {Array} arr - array to traverse\n * @param {Boolean} strict - only convert strings with year, month, and date\n * @return {Array}\n */\nfunction traverseArray(arr, strict) {\n arr.forEach(function(value, index) {\n arr[index] = traverse(value, strict);\n });\n return arr;\n}\n","'use strict';\n\n/**\n * Matcher, slightly modified from:\n *\n * https://github.com/csnover/js-iso8601/blob/lax/iso8601.js\n */\n\nvar matcher = /^(\\d{4})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:([ T])(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\n\n/**\n * Convert an ISO date string to a date. Fallback to native `Date.parse`.\n *\n * https://github.com/csnover/js-iso8601/blob/lax/iso8601.js\n *\n * @param {String} iso\n * @return {Date}\n */\n\nexports.parse = function(iso) {\n var numericKeys = [1, 5, 6, 7, 11, 12];\n var arr = matcher.exec(iso);\n var offset = 0;\n\n // fallback to native parsing\n if (!arr) {\n return new Date(iso);\n }\n\n /* eslint-disable no-cond-assign */\n // remove undefined values\n for (var i = 0, val; val = numericKeys[i]; i++) {\n arr[val] = parseInt(arr[val], 10) || 0;\n }\n /* eslint-enable no-cond-assign */\n\n // allow undefined days and months\n arr[2] = parseInt(arr[2], 10) || 1;\n arr[3] = parseInt(arr[3], 10) || 1;\n\n // month is 0-11\n arr[2]--;\n\n // allow abitrary sub-second precision\n arr[8] = arr[8] ? (arr[8] + '00').substring(0, 3) : 0;\n\n // apply timezone if one exists\n if (arr[4] === ' ') {\n offset = new Date().getTimezoneOffset();\n } else if (arr[9] !== 'Z' && arr[10]) {\n offset = arr[11] * 60 + arr[12];\n if (arr[10] === '+') {\n offset = 0 - offset;\n }\n }\n\n var millis = Date.UTC(arr[1], arr[2], arr[3], arr[5], arr[6] + offset, arr[7], arr[8]);\n return new Date(millis);\n};\n\n\n/**\n * Checks whether a `string` is an ISO date string. `strict` mode requires that\n * the date string at least have a year, month and date.\n *\n * @param {String} string\n * @param {Boolean} strict\n * @return {Boolean}\n */\n\nexports.is = function(string, strict) {\n if (typeof string !== 'string') {\n return false;\n }\n if (strict && (/^\\d{4}-\\d{2}-\\d{2}/).test(string) === false) {\n return false;\n }\n return matcher.test(string);\n};\n","/*\n * JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\n\n/* global define */\n\n/* eslint-disable strict */\n\n;(function ($) {\n 'use strict'\n\n /**\n * Add integers, wrapping at 2^32.\n * This uses 16-bit operations internally to work around bugs in interpreters.\n *\n * @param {number} x First integer\n * @param {number} y Second integer\n * @returns {number} Sum\n */\n function safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff)\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16)\n return (msw << 16) | (lsw & 0xffff)\n }\n\n /**\n * Bitwise rotate a 32-bit number to the left.\n *\n * @param {number} num 32-bit number\n * @param {number} cnt Rotation count\n * @returns {number} Rotated number\n */\n function bitRotateLeft(num, cnt) {\n return (num << cnt) | (num >>> (32 - cnt))\n }\n\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} q q\n * @param {number} a a\n * @param {number} b b\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5ff(a, b, c, d, x, s, t) {\n return md5cmn((b & c) | (~b & d), a, b, x, s, t)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5gg(a, b, c, d, x, s, t) {\n return md5cmn((b & d) | (c & ~d), a, b, x, s, t)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t)\n }\n\n /**\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n *\n * @param {Array} x Array of little-endian words\n * @param {number} len Bit length\n * @returns {Array} MD5 Array\n */\n function binlMD5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32\n x[(((len + 64) >>> 9) << 4) + 14] = len\n\n var i\n var olda\n var oldb\n var oldc\n var oldd\n var a = 1732584193\n var b = -271733879\n var c = -1732584194\n var d = 271733878\n\n for (i = 0; i < x.length; i += 16) {\n olda = a\n oldb = b\n oldc = c\n oldd = d\n\n a = md5ff(a, b, c, d, x[i], 7, -680876936)\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586)\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819)\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330)\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897)\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426)\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341)\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983)\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416)\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417)\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063)\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162)\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682)\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101)\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290)\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329)\n\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510)\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632)\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713)\n b = md5gg(b, c, d, a, x[i], 20, -373897302)\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691)\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083)\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335)\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848)\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438)\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690)\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961)\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501)\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467)\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784)\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473)\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734)\n\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558)\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463)\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562)\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556)\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060)\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353)\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632)\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640)\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174)\n d = md5hh(d, a, b, c, x[i], 11, -358537222)\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979)\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189)\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487)\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835)\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520)\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651)\n\n a = md5ii(a, b, c, d, x[i], 6, -198630844)\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415)\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905)\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055)\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571)\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606)\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523)\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799)\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359)\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744)\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380)\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649)\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070)\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379)\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259)\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551)\n\n a = safeAdd(a, olda)\n b = safeAdd(b, oldb)\n c = safeAdd(c, oldc)\n d = safeAdd(d, oldd)\n }\n return [a, b, c, d]\n }\n\n /**\n * Convert an array of little-endian words to a string\n *\n * @param {Array} input MD5 Array\n * @returns {string} MD5 string\n */\n function binl2rstr(input) {\n var i\n var output = ''\n var length32 = input.length * 32\n for (i = 0; i < length32; i += 8) {\n output += String.fromCharCode((input[i >> 5] >>> i % 32) & 0xff)\n }\n return output\n }\n\n /**\n * Convert a raw string to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n *\n * @param {string} input Raw input string\n * @returns {Array} Array of little-endian words\n */\n function rstr2binl(input) {\n var i\n var output = []\n output[(input.length >> 2) - 1] = undefined\n for (i = 0; i < output.length; i += 1) {\n output[i] = 0\n }\n var length8 = input.length * 8\n for (i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << i % 32\n }\n return output\n }\n\n /**\n * Calculate the MD5 of a raw string\n *\n * @param {string} s Input string\n * @returns {string} Raw MD5 string\n */\n function rstrMD5(s) {\n return binl2rstr(binlMD5(rstr2binl(s), s.length * 8))\n }\n\n /**\n * Calculates the HMAC-MD5 of a key and some data (raw strings)\n *\n * @param {string} key HMAC key\n * @param {string} data Raw input string\n * @returns {string} Raw MD5 string\n */\n function rstrHMACMD5(key, data) {\n var i\n var bkey = rstr2binl(key)\n var ipad = []\n var opad = []\n var hash\n ipad[15] = opad[15] = undefined\n if (bkey.length > 16) {\n bkey = binlMD5(bkey, key.length * 8)\n }\n for (i = 0; i < 16; i += 1) {\n ipad[i] = bkey[i] ^ 0x36363636\n opad[i] = bkey[i] ^ 0x5c5c5c5c\n }\n hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8)\n return binl2rstr(binlMD5(opad.concat(hash), 512 + 128))\n }\n\n /**\n * Convert a raw string to a hex string\n *\n * @param {string} input Raw input string\n * @returns {string} Hex encoded string\n */\n function rstr2hex(input) {\n var hexTab = '0123456789abcdef'\n var output = ''\n var x\n var i\n for (i = 0; i < input.length; i += 1) {\n x = input.charCodeAt(i)\n output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f)\n }\n return output\n }\n\n /**\n * Encode a string as UTF-8\n *\n * @param {string} input Input string\n * @returns {string} UTF8 string\n */\n function str2rstrUTF8(input) {\n return unescape(encodeURIComponent(input))\n }\n\n /**\n * Encodes input string as raw MD5 string\n *\n * @param {string} s Input string\n * @returns {string} Raw MD5 string\n */\n function rawMD5(s) {\n return rstrMD5(str2rstrUTF8(s))\n }\n /**\n * Encodes input string as Hex encoded string\n *\n * @param {string} s Input string\n * @returns {string} Hex encoded string\n */\n function hexMD5(s) {\n return rstr2hex(rawMD5(s))\n }\n /**\n * Calculates the raw HMAC-MD5 for the given key and data\n *\n * @param {string} k HMAC key\n * @param {string} d Input string\n * @returns {string} Raw MD5 string\n */\n function rawHMACMD5(k, d) {\n return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d))\n }\n /**\n * Calculates the Hex encoded HMAC-MD5 for the given key and data\n *\n * @param {string} k HMAC key\n * @param {string} d Input string\n * @returns {string} Raw MD5 string\n */\n function hexHMACMD5(k, d) {\n return rstr2hex(rawHMACMD5(k, d))\n }\n\n /**\n * Calculates MD5 value for a given string.\n * If a key is provided, calculates the HMAC-MD5 value.\n * Returns a Hex encoded string unless the raw argument is given.\n *\n * @param {string} string Input string\n * @param {string} [key] HMAC key\n * @param {boolean} [raw] Raw output switch\n * @returns {string} MD5 output\n */\n function md5(string, key, raw) {\n if (!key) {\n if (!raw) {\n return hexMD5(string)\n }\n return rawMD5(string)\n }\n if (!raw) {\n return hexHMACMD5(key, string)\n }\n return rawHMACMD5(key, string)\n }\n\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return md5\n })\n } else if (typeof module === 'object' && module.exports) {\n module.exports = md5\n } else {\n $.md5 = md5\n }\n})(this)\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","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\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","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","\"use strict\";\n\nvar isodate = require(\"@segment/isodate\");\nvar milliseconds = require(\"./milliseconds\");\nvar seconds = require(\"./seconds\");\n\nvar objProto = Object.prototype;\nvar toStr = objProto.toString;\n\nfunction isDate(value) {\n return toStr.call(value) === \"[object Date]\";\n}\n\nfunction isNumber(value) {\n return toStr.call(value) === \"[object Number]\";\n}\n\n/**\n * Returns a new Javascript Date object, allowing a variety of extra input types\n * over the native Date constructor.\n *\n * @param {Date|string|number} val\n */\nmodule.exports = function newDate(val) {\n if (isDate(val)) return val;\n if (isNumber(val)) return new Date(toMs(val));\n\n // date strings\n if (isodate.is(val)) {\n return isodate.parse(val);\n }\n if (milliseconds.is(val)) {\n return milliseconds.parse(val);\n }\n if (seconds.is(val)) {\n return seconds.parse(val);\n }\n\n // fallback to Date.parse\n return new Date(val);\n};\n\n/**\n * If the number passed val is seconds from the epoch, turn it into milliseconds.\n * Milliseconds would be greater than 31557600000 (December 31, 1970).\n *\n * @param {number} num\n */\nfunction toMs(num) {\n if (num < 31557600000) return num * 1000;\n return num;\n}\n","\"use strict\";\n\n/**\n * Matcher.\n */\n\nvar matcher = /\\d{13}/;\n\n/**\n * Check whether a string is a millisecond date string.\n *\n * @param {string} string\n * @return {boolean}\n */\nexports.is = function (string) {\n return matcher.test(string);\n};\n\n/**\n * Convert a millisecond string to a date.\n *\n * @param {string} millis\n * @return {Date}\n */\nexports.parse = function (millis) {\n millis = parseInt(millis, 10);\n return new Date(millis);\n};\n","\"use strict\";\n\n/**\n * Matcher.\n */\n\nvar matcher = /\\d{10}/;\n\n/**\n * Check whether a string is a second date string.\n *\n * @param {string} string\n * @return {Boolean}\n */\nexports.is = function (string) {\n return matcher.test(string);\n};\n\n/**\n * Convert a second string to a date.\n *\n * @param {string} seconds\n * @return {Date}\n */\nexports.parse = function (seconds) {\n var millis = parseInt(seconds, 10) * 1000;\n return new Date(millis);\n};\n","\nvar identity = function(_){ return _; };\n\n\n/**\n * Module exports, export\n */\n\nmodule.exports = multiple(find);\nmodule.exports.find = module.exports;\n\n\n/**\n * Export the replacement function, return the modified object\n */\n\nmodule.exports.replace = function (obj, key, val, options) {\n multiple(replace).call(this, obj, key, val, options);\n return obj;\n};\n\n\n/**\n * Export the delete function, return the modified object\n */\n\nmodule.exports.del = function (obj, key, options) {\n multiple(del).call(this, obj, key, null, options);\n return obj;\n};\n\n\n/**\n * Compose applying the function to a nested key\n */\n\nfunction multiple (fn) {\n return function (obj, path, val, options) {\n var normalize = options && isFunction(options.normalizer) ? options.normalizer : defaultNormalize;\n path = normalize(path);\n\n var key;\n var finished = false;\n\n while (!finished) loop();\n\n function loop() {\n for (key in obj) {\n var normalizedKey = normalize(key);\n if (0 === path.indexOf(normalizedKey)) {\n var temp = path.substr(normalizedKey.length);\n if (temp.charAt(0) === '.' || temp.length === 0) {\n path = temp.substr(1);\n var child = obj[key];\n\n // we're at the end and there is nothing.\n if (null == child) {\n finished = true;\n return;\n }\n\n // we're at the end and there is something.\n if (!path.length) {\n finished = true;\n return;\n }\n\n // step into child\n obj = child;\n\n // but we're done here\n return;\n }\n }\n }\n\n key = undefined;\n // if we found no matching properties\n // on the current object, there's no match.\n finished = true;\n }\n\n if (!key) return;\n if (null == obj) return obj;\n\n // the `obj` and `key` is one above the leaf object and key, so\n // start object: { a: { 'b.c': 10 } }\n // end object: { 'b.c': 10 }\n // end key: 'b.c'\n // this way, you can do `obj[key]` and get `10`.\n return fn(obj, key, val);\n };\n}\n\n\n/**\n * Find an object by its key\n *\n * find({ first_name : 'Calvin' }, 'firstName')\n */\n\nfunction find (obj, key) {\n if (obj.hasOwnProperty(key)) return obj[key];\n}\n\n\n/**\n * Delete a value for a given key\n *\n * del({ a : 'b', x : 'y' }, 'X' }) -> { a : 'b' }\n */\n\nfunction del (obj, key) {\n if (obj.hasOwnProperty(key)) delete obj[key];\n return obj;\n}\n\n\n/**\n * Replace an objects existing value with a new one\n *\n * replace({ a : 'b' }, 'a', 'c') -> { a : 'c' }\n */\n\nfunction replace (obj, key, val) {\n if (obj.hasOwnProperty(key)) obj[key] = val;\n return obj;\n}\n\n/**\n * Normalize a `dot.separated.path`.\n *\n * A.HELL(!*&#(!)O_WOR LD.bar => ahelloworldbar\n *\n * @param {String} path\n * @return {String}\n */\n\nfunction defaultNormalize(path) {\n return path.replace(/[^a-zA-Z0-9\\.]+/g, '').toLowerCase();\n}\n\n/**\n * Check if a value is a function.\n *\n * @param {*} val\n * @return {boolean} Returns `true` if `val` is a function, otherwise `false`.\n */\n\nfunction isFunction(val) {\n return typeof val === 'function';\n}\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\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\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\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\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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 Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","var IDX=256, HEX=[], BUFFER;\nwhile (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);\n\nexport function v4() {\n\tvar i=0, num, out='';\n\n\tif (!BUFFER || ((IDX + 16) > 256)) {\n\t\tBUFFER = Array(i=256);\n\t\twhile (i--) BUFFER[i] = 256 * Math.random() | 0;\n\t\ti = IDX = 0;\n\t}\n\n\tfor (; i < 16; i++) {\n\t\tnum = BUFFER[IDX + i];\n\t\tif (i==6) out += HEX[num & 15 | 64];\n\t\telse if (i==8) out += HEX[num & 63 | 128];\n\t\telse out += HEX[num];\n\n\t\tif (i & 1 && i > 1 && i < 11) out += '-';\n\t}\n\n\tIDX++;\n\treturn out;\n}\n","export function dset(obj, keys, val) {\n\tkeys.split && (keys=keys.split('.'));\n\tvar i=0, l=keys.length, t=obj, x, k;\n\twhile (i < l) {\n\t\tk = keys[i++];\n\t\tif (k === '__proto__' || k === 'constructor' || k === 'prototype') break;\n\t\tt = t[k] = (i === l) ? val : (typeof(x=t[k])===typeof(keys)) ? x : (keys[i]*0 !== 0 || !!~(''+keys[i]).indexOf('.')) ? {} : [];\n\t}\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar 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\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(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)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\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}\n\nexport function __spreadArray(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}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"10\":\"tsub-middleware\",\"50\":\"ajs-destination\",\"104\":\"schemaFilter\",\"248\":\"auto-track\",\"521\":\"remoteMiddleware\",\"538\":\"queryString\",\"694\":\"legacyVideos\"}[chunkId] || chunkId) + \".\" + {\"10\":\"ad6b2689\",\"50\":\"da8ff9e3\",\"104\":\"edd1ce95\",\"248\":\"e8399832\",\"381\":\"f0baf52d\",\"521\":\"d29af327\",\"538\":\"fafaaae6\",\"694\":\"c6a8efa9\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"octopus-digital-identity-ui:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkoctopus_digital_identity_ui\"] = self[\"webpackChunkoctopus_digital_identity_ui\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","// MIT License\n// Copyright (c) 2019-present StringEpsilon \n// Copyright (c) 2017-2019 James Kyle \n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nconst MAX_SIGNED_31_BIT_INT = 1073741823;\n\nconst commonjsGlobal =\n typeof globalThis !== \"undefined\" // 'global proper'\n ? // eslint-disable-next-line no-undef\n globalThis\n : typeof window !== \"undefined\"\n ? window // Browser\n : typeof global !== \"undefined\"\n ? global // node.js\n : {};\n\nfunction getUniqueId() {\n let key = \"__global_unique_id__\";\n return (commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1);\n}\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n let handlers = [];\n return {\n on(handler) {\n handlers.push(handler);\n },\n\n off(handler) {\n handlers = handlers.filter(h => h !== handler);\n },\n\n get() {\n return value;\n },\n\n set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(handler => handler(value, changedBits));\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nexport default function createReactContext(defaultValue, calculateChangedBits) {\n const contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n class Provider extends React.Component {\n emitter = createEventEmitter(this.props.value);\n\n static childContextTypes = {\n [contextProp]: PropTypes.object.isRequired\n };\n\n getChildContext() {\n return {\n [contextProp]: this.emitter\n };\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n let oldValue = this.props.value;\n let newValue = nextProps.value;\n let changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits =\n typeof calculateChangedBits === \"function\"\n ? calculateChangedBits(oldValue, newValue)\n : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== \"production\") {\n warning(\n (changedBits & MAX_SIGNED_31_BIT_INT) === changedBits,\n \"calculateChangedBits: Expected the return value to be a \" +\n \"31-bit integer. Instead received: \" +\n changedBits\n );\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n }\n\n render() {\n return this.props.children;\n }\n }\n\n class Consumer extends React.Component {\n static contextTypes = {\n [contextProp]: PropTypes.object\n };\n\n observedBits;\n\n state = {\n value: this.getValue()\n };\n\n componentWillReceiveProps(nextProps) {\n let { observedBits } = nextProps;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n let { observedBits } = this.props;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n }\n\n getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n }\n\n onUpdate = (newValue, changedBits) => {\n const observedBits = this.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n this.setState({ value: this.getValue() });\n }\n };\n\n render() {\n return onlyChild(this.props.children)(this.state.value);\n }\n }\n\n return {\n Provider,\n Consumer\n };\n}\n","// MIT License\n// Copyright (c) 2019-present StringEpsilon \n// Copyright (c) 2017-2019 James Kyle \n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport createReactContext from \"./miniCreateReactContext\";\n\nexport default React.createContext || createReactContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"./createContext\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n this._pendingLocation = location;\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n }\n });\n }\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","export const TAG_PROPERTIES = {\n CHARSET: 'charset',\n CSS_TEXT: 'cssText',\n HREF: 'href',\n HTTPEQUIV: 'http-equiv',\n INNER_HTML: 'innerHTML',\n ITEM_PROP: 'itemprop',\n NAME: 'name',\n PROPERTY: 'property',\n REL: 'rel',\n SRC: 'src',\n};\n\nexport const ATTRIBUTE_NAMES = {\n BODY: 'bodyAttributes',\n HTML: 'htmlAttributes',\n TITLE: 'titleAttributes',\n};\n\nexport const TAG_NAMES = {\n BASE: 'base',\n BODY: 'body',\n HEAD: 'head',\n HTML: 'html',\n LINK: 'link',\n META: 'meta',\n NOSCRIPT: 'noscript',\n SCRIPT: 'script',\n STYLE: 'style',\n TITLE: 'title',\n FRAGMENT: 'Symbol(react.fragment)',\n};\n\nexport const SEO_PRIORITY_TAGS = {\n link: { rel: ['amphtml', 'canonical', 'alternate'] },\n script: { type: ['application/ld+json'] },\n meta: {\n charset: '',\n name: ['robots', 'description'],\n property: [\n 'og:type',\n 'og:title',\n 'og:url',\n 'og:image',\n 'og:image:alt',\n 'og:description',\n 'twitter:url',\n 'twitter:title',\n 'twitter:description',\n 'twitter:image',\n 'twitter:image:alt',\n 'twitter:card',\n 'twitter:site',\n ],\n },\n};\n\nexport const VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(name => TAG_NAMES[name]);\n\nexport const REACT_TAG_MAP = {\n accesskey: 'accessKey',\n charset: 'charSet',\n class: 'className',\n contenteditable: 'contentEditable',\n contextmenu: 'contextMenu',\n 'http-equiv': 'httpEquiv',\n itemprop: 'itemProp',\n tabindex: 'tabIndex',\n};\n\nexport const HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce((obj, key) => {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nexport const HELMET_ATTRIBUTE = 'data-rh';\n","import { TAG_NAMES, TAG_PROPERTIES, ATTRIBUTE_NAMES } from './constants';\n\nconst HELMET_PROPS = {\n DEFAULT_TITLE: 'defaultTitle',\n DEFER: 'defer',\n ENCODE_SPECIAL_CHARACTERS: 'encodeSpecialCharacters',\n ON_CHANGE_CLIENT_STATE: 'onChangeClientState',\n TITLE_TEMPLATE: 'titleTemplate',\n PRIORITIZE_SEO_TAGS: 'prioritizeSeoTags',\n};\n\nconst getInnermostProperty = (propsList, property) => {\n for (let i = propsList.length - 1; i >= 0; i -= 1) {\n const props = propsList[i];\n\n if (Object.prototype.hasOwnProperty.call(props, property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nconst getTitleFromPropsList = propsList => {\n let innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n const innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n if (Array.isArray(innermostTitle)) {\n innermostTitle = innermostTitle.join('');\n }\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, () => innermostTitle);\n }\n\n const innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nconst getOnChangeClientState = propsList =>\n getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || (() => {});\n\nconst getAttributesFromPropsList = (tagType, propsList) =>\n propsList\n .filter(props => typeof props[tagType] !== 'undefined')\n .map(props => props[tagType])\n .reduce((tagAttrs, current) => ({ ...tagAttrs, ...current }), {});\n\nconst getBaseTagFromPropsList = (primaryAttributes, propsList) =>\n propsList\n .filter(props => typeof props[TAG_NAMES.BASE] !== 'undefined')\n .map(props => props[TAG_NAMES.BASE])\n .reverse()\n .reduce((innermostBaseTag, tag) => {\n if (!innermostBaseTag.length) {\n const keys = Object.keys(tag);\n\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (\n primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 &&\n tag[lowerCaseAttributeKey]\n ) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n\n// eslint-disable-next-line no-console\nconst warn = msg => console && typeof console.warn === 'function' && console.warn(msg);\n\nconst getTagsFromPropsList = (tagName, primaryAttributes, propsList) => {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n const approvedSeenTags = {};\n\n return propsList\n .filter(props => {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== 'undefined') {\n warn(\n `Helmet: ${tagName} should be of type \"Array\". Instead found type \"${typeof props[\n tagName\n ]}\"`\n );\n }\n return false;\n })\n .map(props => props[tagName])\n .reverse()\n .reduce((approvedTags, instanceTags) => {\n const instanceSeenTags = {};\n\n instanceTags\n .filter(tag => {\n let primaryAttributeKey;\n const keys = Object.keys(tag);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (\n primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 &&\n !(\n primaryAttributeKey === TAG_PROPERTIES.REL &&\n tag[primaryAttributeKey].toLowerCase() === 'canonical'\n ) &&\n !(\n lowerCaseAttributeKey === TAG_PROPERTIES.REL &&\n tag[lowerCaseAttributeKey].toLowerCase() === 'stylesheet'\n )\n ) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (\n primaryAttributes.indexOf(attributeKey) !== -1 &&\n (attributeKey === TAG_PROPERTIES.INNER_HTML ||\n attributeKey === TAG_PROPERTIES.CSS_TEXT ||\n attributeKey === TAG_PROPERTIES.ITEM_PROP)\n ) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n const value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n })\n .reverse()\n .forEach(tag => approvedTags.push(tag));\n\n // Update seen tags with tags from this instance\n const keys = Object.keys(instanceSeenTags);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const tagUnion = {\n ...approvedSeenTags[attributeKey],\n ...instanceSeenTags[attributeKey],\n };\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, [])\n .reverse();\n};\n\nconst getAnyTrueFromPropsList = (propsList, checkedTag) => {\n if (Array.isArray(propsList) && propsList.length) {\n for (let index = 0; index < propsList.length; index += 1) {\n const prop = propsList[index];\n if (prop[checkedTag]) {\n return true;\n }\n }\n }\n return false;\n};\n\nconst reducePropsToState = propsList => ({\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(\n TAG_NAMES.LINK,\n [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF],\n propsList\n ),\n metaTags: getTagsFromPropsList(\n TAG_NAMES.META,\n [\n TAG_PROPERTIES.NAME,\n TAG_PROPERTIES.CHARSET,\n TAG_PROPERTIES.HTTPEQUIV,\n TAG_PROPERTIES.PROPERTY,\n TAG_PROPERTIES.ITEM_PROP,\n ],\n propsList\n ),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(\n TAG_NAMES.SCRIPT,\n [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML],\n propsList\n ),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList),\n prioritizeSeoTags: getAnyTrueFromPropsList(propsList, HELMET_PROPS.PRIORITIZE_SEO_TAGS),\n});\n\nexport const flattenArray = possibleArray =>\n Array.isArray(possibleArray) ? possibleArray.join('') : possibleArray;\n\nexport { reducePropsToState };\n\nconst checkIfPropsMatch = (props, toMatch) => {\n const keys = Object.keys(props);\n for (let i = 0; i < keys.length; i += 1) {\n // e.g. if rel exists in the list of allowed props [amphtml, alternate, etc]\n if (toMatch[keys[i]] && toMatch[keys[i]].includes(props[keys[i]])) {\n return true;\n }\n }\n return false;\n};\n\nexport const prioritizer = (elementsList, propsToMatch) => {\n if (Array.isArray(elementsList)) {\n return elementsList.reduce(\n (acc, elementAttrs) => {\n if (checkIfPropsMatch(elementAttrs, propsToMatch)) {\n acc.priority.push(elementAttrs);\n } else {\n acc.default.push(elementAttrs);\n }\n return acc;\n },\n { priority: [], default: [] }\n );\n }\n return { default: elementsList };\n};\n\nexport const without = (obj, key) => {\n return {\n ...obj,\n [key]: undefined,\n };\n};\n","import React from 'react';\nimport {\n HELMET_ATTRIBUTE,\n TAG_NAMES,\n REACT_TAG_MAP,\n TAG_PROPERTIES,\n ATTRIBUTE_NAMES,\n SEO_PRIORITY_TAGS,\n} from './constants';\nimport { flattenArray, prioritizer } from './utils';\n\nconst SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nconst encodeSpecialCharacters = (str, encode = true) => {\n if (encode === false) {\n return String(str);\n }\n\n return String(str)\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n};\n\nconst generateElementAttributesAsString = attributes =>\n Object.keys(attributes).reduce((str, key) => {\n const attr = typeof attributes[key] !== 'undefined' ? `${key}=\"${attributes[key]}\"` : `${key}`;\n return str ? `${str} ${attr}` : attr;\n }, '');\n\nconst generateTitleAsString = (type, title, attributes, encode) => {\n const attributeString = generateElementAttributesAsString(attributes);\n const flattenedTitle = flattenArray(title);\n return attributeString\n ? `<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeString}>${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}`\n : `<${type} ${HELMET_ATTRIBUTE}=\"true\">${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}`;\n};\n\nconst generateTagsAsString = (type, tags, encode) =>\n tags.reduce((str, tag) => {\n const attributeHtml = Object.keys(tag)\n .filter(\n attribute =>\n !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT)\n )\n .reduce((string, attribute) => {\n const attr =\n typeof tag[attribute] === 'undefined'\n ? attribute\n : `${attribute}=\"${encodeSpecialCharacters(tag[attribute], encode)}\"`;\n return string ? `${string} ${attr}` : attr;\n }, '');\n\n const tagContent = tag.innerHTML || tag.cssText || '';\n\n const isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return `${str}<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeHtml}${\n isSelfClosing ? `/>` : `>${tagContent}`\n }`;\n }, '');\n\nconst convertElementAttributesToReactProps = (attributes, initProps = {}) =>\n Object.keys(attributes).reduce((obj, key) => {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n\nconst generateTitleAsReactComponent = (type, title, attributes) => {\n // assigning into an array to define toString function on it\n const initProps = {\n key: title,\n [HELMET_ATTRIBUTE]: true,\n };\n const props = convertElementAttributesToReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nconst generateTagsAsReactComponent = (type, tags) =>\n tags.map((tag, i) => {\n const mappedTag = {\n key: i,\n [HELMET_ATTRIBUTE]: true,\n };\n\n Object.keys(tag).forEach(attribute => {\n const mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (\n mappedAttribute === TAG_PROPERTIES.INNER_HTML ||\n mappedAttribute === TAG_PROPERTIES.CSS_TEXT\n ) {\n const content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n\nconst getMethodsForTag = (type, tags, encode) => {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: () =>\n generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode),\n toString: () => generateTitleAsString(type, tags.title, tags.titleAttributes, encode),\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: () => convertElementAttributesToReactProps(tags),\n toString: () => generateElementAttributesAsString(tags),\n };\n default:\n return {\n toComponent: () => generateTagsAsReactComponent(type, tags),\n toString: () => generateTagsAsString(type, tags, encode),\n };\n }\n};\n\nconst getPriorityMethods = ({ metaTags, linkTags, scriptTags, encode }) => {\n const meta = prioritizer(metaTags, SEO_PRIORITY_TAGS.meta);\n const link = prioritizer(linkTags, SEO_PRIORITY_TAGS.link);\n const script = prioritizer(scriptTags, SEO_PRIORITY_TAGS.script);\n\n // need to have toComponent() and toString()\n const priorityMethods = {\n toComponent: () => [\n ...generateTagsAsReactComponent(TAG_NAMES.META, meta.priority),\n ...generateTagsAsReactComponent(TAG_NAMES.LINK, link.priority),\n ...generateTagsAsReactComponent(TAG_NAMES.SCRIPT, script.priority),\n ],\n toString: () =>\n // generate all the tags as strings and concatenate them\n `${getMethodsForTag(TAG_NAMES.META, meta.priority, encode)} ${getMethodsForTag(\n TAG_NAMES.LINK,\n link.priority,\n encode\n )} ${getMethodsForTag(TAG_NAMES.SCRIPT, script.priority, encode)}`,\n };\n\n return {\n priorityMethods,\n metaTags: meta.default,\n linkTags: link.default,\n scriptTags: script.default,\n };\n};\n\nconst mapStateOnServer = props => {\n const {\n baseTag,\n bodyAttributes,\n encode,\n htmlAttributes,\n noscriptTags,\n styleTags,\n title = '',\n titleAttributes,\n prioritizeSeoTags,\n } = props;\n let { linkTags, metaTags, scriptTags } = props;\n let priorityMethods = {\n toComponent: () => {},\n toString: () => '',\n };\n if (prioritizeSeoTags) {\n ({ priorityMethods, linkTags, metaTags, scriptTags } = getPriorityMethods(props));\n }\n return {\n priority: priorityMethods,\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title, titleAttributes }, encode),\n };\n};\n\nexport default mapStateOnServer;\n","import mapStateOnServer from './server';\n\nconst instances = [];\n\nexport function clearInstances() {\n instances.length = 0;\n}\n\nexport default class HelmetData {\n instances = [];\n\n value = {\n setHelmet: serverState => {\n this.context.helmet = serverState;\n },\n helmetInstances: {\n get: () => (this.canUseDOM ? instances : this.instances),\n add: instance => {\n (this.canUseDOM ? instances : this.instances).push(instance);\n },\n remove: instance => {\n const index = (this.canUseDOM ? instances : this.instances).indexOf(instance);\n (this.canUseDOM ? instances : this.instances).splice(index, 1);\n },\n },\n };\n\n constructor(context, canUseDOM = typeof document !== 'undefined') {\n this.context = context;\n this.canUseDOM = canUseDOM;\n\n if (!canUseDOM) {\n context.helmet = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: '',\n titleAttributes: {},\n });\n }\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport HelmetData from './HelmetData';\n\nconst defaultValue = {};\n\nexport const Context = React.createContext(defaultValue);\n\nexport const providerShape = PropTypes.shape({\n setHelmet: PropTypes.func,\n helmetInstances: PropTypes.shape({\n get: PropTypes.func,\n add: PropTypes.func,\n remove: PropTypes.func,\n }),\n});\n\nconst canUseDOM = typeof document !== 'undefined';\n\nexport default class Provider extends Component {\n static canUseDOM = canUseDOM;\n\n static propTypes = {\n context: PropTypes.shape({\n helmet: PropTypes.shape(),\n }),\n children: PropTypes.node.isRequired,\n };\n\n static defaultProps = {\n context: {},\n };\n\n static displayName = 'HelmetProvider';\n\n constructor(props) {\n super(props);\n\n this.helmetData = new HelmetData(this.props.context, Provider.canUseDOM);\n }\n\n render() {\n return {this.props.children};\n }\n}\n","import { HELMET_ATTRIBUTE, TAG_NAMES, TAG_PROPERTIES } from './constants';\nimport { flattenArray } from './utils';\n\nconst updateTags = (type, tags) => {\n const headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n const tagNodes = headElement.querySelectorAll(`${type}[${HELMET_ATTRIBUTE}]`);\n const oldTags = [].slice.call(tagNodes);\n const newTags = [];\n let indexToDelete;\n\n if (tags && tags.length) {\n tags.forEach(tag => {\n const newElement = document.createElement(type);\n\n // eslint-disable-next-line\n for (const attribute in tag) {\n if (Object.prototype.hasOwnProperty.call(tag, attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n const value = typeof tag[attribute] === 'undefined' ? '' : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, 'true');\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (\n oldTags.some((existingTag, index) => {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })\n ) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(tag => tag.parentNode.removeChild(tag));\n newTags.forEach(tag => headElement.appendChild(tag));\n\n return {\n oldTags,\n newTags,\n };\n};\n\nconst updateAttributes = (tagName, attributes) => {\n const elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n const helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n const helmetAttributes = helmetAttributeString ? helmetAttributeString.split(',') : [];\n const attributesToRemove = [].concat(helmetAttributes);\n const attributeKeys = Object.keys(attributes);\n\n for (let i = 0; i < attributeKeys.length; i += 1) {\n const attribute = attributeKeys[i];\n const value = attributes[attribute] || '';\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n const indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (let i = attributesToRemove.length - 1; i >= 0; i -= 1) {\n elementTag.removeAttribute(attributesToRemove[i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(',')) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(','));\n }\n};\n\nconst updateTitle = (title, attributes) => {\n if (typeof title !== 'undefined' && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nconst commitTagChanges = (newState, cb) => {\n const {\n baseTag,\n bodyAttributes,\n htmlAttributes,\n linkTags,\n metaTags,\n noscriptTags,\n onChangeClientState,\n scriptTags,\n styleTags,\n title,\n titleAttributes,\n } = newState;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n const tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags),\n };\n\n const addedTags = {};\n const removedTags = {};\n\n Object.keys(tagUpdates).forEach(tagType => {\n const { newTags, oldTags } = tagUpdates[tagType];\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n if (cb) {\n cb();\n }\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\n// eslint-disable-next-line\nlet _helmetCallback = null;\n\nconst handleStateChangeOnClient = newState => {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(() => {\n commitTagChanges(newState, () => {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nexport default handleStateChangeOnClient;\n","import { Component } from 'react';\nimport shallowEqual from 'shallowequal';\nimport handleStateChangeOnClient from './client';\nimport mapStateOnServer from './server';\nimport { reducePropsToState } from './utils';\nimport Provider, { providerShape } from './Provider';\n\nexport default class Dispatcher extends Component {\n static propTypes = {\n context: providerShape.isRequired,\n };\n\n static displayName = 'HelmetDispatcher';\n\n rendered = false;\n\n shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n }\n\n componentDidUpdate() {\n this.emitChange();\n }\n\n componentWillUnmount() {\n const { helmetInstances } = this.props.context;\n helmetInstances.remove(this);\n this.emitChange();\n }\n\n emitChange() {\n const { helmetInstances, setHelmet } = this.props.context;\n let serverState = null;\n const state = reducePropsToState(\n helmetInstances.get().map(instance => {\n const props = { ...instance.props };\n delete props.context;\n return props;\n })\n );\n if (Provider.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n serverState = mapStateOnServer(state);\n }\n setHelmet(serverState);\n }\n\n // componentWillMount will be deprecated\n // for SSR, initialize on first render\n // constructor is also unsafe in StrictMode\n init() {\n if (this.rendered) {\n return;\n }\n\n this.rendered = true;\n\n const { helmetInstances } = this.props.context;\n helmetInstances.add(this);\n this.emitChange();\n }\n\n render() {\n this.init();\n\n return null;\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport fastCompare from 'react-fast-compare';\nimport invariant from 'invariant';\nimport { Context } from './Provider';\nimport HelmetData from './HelmetData';\nimport Dispatcher from './Dispatcher';\nimport { without } from './utils';\nimport { TAG_NAMES, VALID_TAG_NAMES, HTML_TAG_MAP } from './constants';\n\nexport { default as HelmetData } from './HelmetData';\nexport { default as HelmetProvider } from './Provider';\n\n/* eslint-disable class-methods-use-this */\nexport class Helmet extends Component {\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n * @param {Boolean} prioritizeSeoTags: false\n */\n /* eslint-disable react/forbid-prop-types, react/require-default-props */\n static propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string,\n prioritizeSeoTags: PropTypes.bool,\n helmetData: PropTypes.object,\n };\n /* eslint-enable react/prop-types, react/forbid-prop-types, react/require-default-props */\n\n static defaultProps = {\n defer: true,\n encodeSpecialCharacters: true,\n prioritizeSeoTags: false,\n };\n\n static displayName = 'Helmet';\n\n shouldComponentUpdate(nextProps) {\n return !fastCompare(without(this.props, 'helmetData'), without(nextProps, 'helmetData'));\n }\n\n mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren,\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren,\n };\n default:\n throw new Error(\n `<${child.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`\n );\n }\n }\n\n flattenArrayTypeChildren({ child, arrayTypeChildren, newChildProps, nestedChildren }) {\n return {\n ...arrayTypeChildren,\n [child.type]: [\n ...(arrayTypeChildren[child.type] || []),\n {\n ...newChildProps,\n ...this.mapNestedChildrenToProps(child, nestedChildren),\n },\n ],\n };\n }\n\n mapObjectTypeChildren({ child, newProps, newChildProps, nestedChildren }) {\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return {\n ...newProps,\n [child.type]: nestedChildren,\n titleAttributes: { ...newChildProps },\n };\n\n case TAG_NAMES.BODY:\n return {\n ...newProps,\n bodyAttributes: { ...newChildProps },\n };\n\n case TAG_NAMES.HTML:\n return {\n ...newProps,\n htmlAttributes: { ...newChildProps },\n };\n default:\n return {\n ...newProps,\n [child.type]: { ...newChildProps },\n };\n }\n }\n\n mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n let newFlattenedProps = { ...newProps };\n\n Object.keys(arrayTypeChildren).forEach(arrayChildName => {\n newFlattenedProps = {\n ...newFlattenedProps,\n [arrayChildName]: arrayTypeChildren[arrayChildName],\n };\n });\n\n return newFlattenedProps;\n }\n\n warnOnInvalidChildren(child, nestedChildren) {\n invariant(\n VALID_TAG_NAMES.some(name => child.type === name),\n typeof child.type === 'function'\n ? `You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.`\n : `Only elements types ${VALID_TAG_NAMES.join(\n ', '\n )} are allowed. Helmet does not support rendering <${\n child.type\n }> elements. Refer to our API for more information.`\n );\n\n invariant(\n !nestedChildren ||\n typeof nestedChildren === 'string' ||\n (Array.isArray(nestedChildren) &&\n !nestedChildren.some(nestedChild => typeof nestedChild !== 'string')),\n `Helmet expects a string as a child of <${child.type}>. Did you forget to wrap your children in braces? ( <${child.type}>{\\`\\`} ) Refer to our API for more information.`\n );\n\n return true;\n }\n\n mapChildrenToProps(children, newProps) {\n let arrayTypeChildren = {};\n\n React.Children.forEach(children, child => {\n if (!child || !child.props) {\n return;\n }\n\n const { children: nestedChildren, ...childProps } = child.props;\n // convert React props to HTML attributes\n const newChildProps = Object.keys(childProps).reduce((obj, key) => {\n obj[HTML_TAG_MAP[key] || key] = childProps[key];\n return obj;\n }, {});\n\n let { type } = child;\n if (typeof type === 'symbol') {\n type = type.toString();\n } else {\n this.warnOnInvalidChildren(child, nestedChildren);\n }\n\n switch (type) {\n case TAG_NAMES.FRAGMENT:\n newProps = this.mapChildrenToProps(nestedChildren, newProps);\n break;\n\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = this.flattenArrayTypeChildren({\n child,\n arrayTypeChildren,\n newChildProps,\n nestedChildren,\n });\n break;\n\n default:\n newProps = this.mapObjectTypeChildren({\n child,\n newProps,\n newChildProps,\n nestedChildren,\n });\n break;\n }\n });\n\n return this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n }\n\n render() {\n const { children, ...props } = this.props;\n let newProps = { ...props };\n let { helmetData } = props;\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n if (helmetData && !(helmetData instanceof HelmetData)) {\n helmetData = new HelmetData(helmetData.context, helmetData.instances);\n }\n\n return helmetData ? (\n // eslint-disable-next-line react/jsx-props-no-spreading\n \n ) : (\n \n {(\n context // eslint-disable-next-line react/jsx-props-no-spreading\n ) => }\n \n );\n }\n}\n","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _mask, _g, _path10, _path11, _path12, _path13, _path14, _path15;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLogo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 453,\n height: 46,\n viewBox: \"0 0 453 46\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M28.551 21.5273C28.551 29.2296 22.8938 35.4731 14.1296 35.4731C6.1648 35.4731 0 29.4175 0 21.7165C0 13.6158 6.31136 7.95996 14.2762 7.95996C22.241 7.95996 28.551 13.825 28.551 21.5273ZM14.2761 30.2837C19.0046 30.2837 22.3741 26.4479 22.3741 21.718C22.3741 16.9868 19.3537 13.1523 14.2761 13.1523C9.29842 13.1523 6.17672 16.9868 6.17672 21.718C6.17672 26.4479 9.51426 30.2837 14.2761 30.2837Z\",\n fill: \"#0E0A23\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M97.7614 21.5273C97.7614 29.2296 92.1043 35.4731 83.3387 35.4731C75.3752 35.4731 69.2104 29.4175 69.2104 21.7165C69.2104 13.6158 75.5205 7.95996 83.4866 7.95996C91.4514 7.95996 97.7614 13.825 97.7614 21.5273ZM83.4866 30.2837C88.2151 30.2837 91.5846 26.4479 91.5846 21.718C91.5846 16.9868 88.5642 13.1523 83.4866 13.1523C78.5089 13.1523 75.3872 16.9868 75.3872 21.718C75.3872 26.4479 78.7248 30.2837 83.4866 30.2837Z\",\n fill: \"#0E0A23\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M129.254 24.2688C129.254 24.2688 129.255 13.7286 129.254 11.0026C129.754 7.18803 135.128 9.23319 135.128 9.23319V23.4534V23.4481C135.128 27.8861 138.165 30.0539 141.91 30.0539C145.658 30.0539 148.693 27.9607 148.693 23.4481C148.693 23.4481 148.711 13.7352 148.709 11.0106C149.21 7.19603 154.584 9.24252 154.584 9.24252V18.3851C155.348 29.6528 166.126 30.4949 166.126 30.4949C176.856 31.9805 175.913 27.5744 175.913 27.5744C175.635 25.3573 173.98 24.8537 171.126 24.4886C169.353 24.2608 167.814 24.1063 167.814 24.1063C156.312 23.3788 157.443 15.791 157.443 15.791C157.589 9.37176 164.456 8.39514 164.456 8.39514C170.524 7.31461 174.81 8.37516 174.81 8.37516C184.252 10.3404 179.602 14.8144 178.823 15.0689C178.823 15.0689 176.308 12.7666 170.425 12.4348C163.179 11.9738 163.306 15.394 163.306 15.394C163.071 17.8895 166.266 18.3452 166.266 18.3452L174.032 19.4324C183.205 20.7114 182.087 27.22 182.087 27.22C181.485 35.358 171.787 35.4179 171.787 35.4179C158.522 36.188 153.53 29.3011 153.53 29.3011C151.671 32.9984 147.959 35.4712 141.792 35.4712C134.438 35.4712 129.254 31.3489 129.254 23.9517\",\n fill: \"#0E0A23\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M43.0551 8.39649C32.4469 9.15327 30.026 19.0127 30.2845 21.8786C30.1366 26.2087 33.1664 35.4726 44.8844 35.4779C46.4273 35.4486 47.8422 35.31 49.1333 35.0715L49.1319 29.8167C48.0088 30.0153 46.6524 30.1392 45.0163 30.1831C39.5483 30.319 36.44 25.833 36.4626 21.8772C36.4626 17.29 40.2132 13.5234 45.0163 13.5714L54.4947 13.57L54.5187 26.5471C54.5187 26.5471 53.8338 37.5417 67.7329 35.2327V29.9979C60.0253 31.658 60.4423 26.8083 60.4423 26.8083V13.5793H67.7329V8.3885H60.4423V2.26367H54.5187V8.3885L43.0551 8.39649Z\",\n fill: \"#0E0A23\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M105.387 43.3593C104.886 47.1738 99.5122 45.1273 99.5122 45.1273V21.7166C99.852 14.2474 104.321 8.16387 113.521 7.96002C121.644 7.77882 127.477 13.8264 127.529 21.5274C127.582 29.688 121.861 35.7556 113.406 35.3972C110.391 35.2306 107.446 34.0435 105.412 31.4308C105.412 31.4308 105.385 40.6333 105.387 43.3593ZM113.369 30.3083C118.049 30.3083 121.385 26.4738 121.385 21.7426C121.385 17.0114 118.396 13.1769 113.369 13.1769C108.44 13.1769 105.351 17.0114 105.351 21.7426C105.351 26.4738 108.655 30.3083 113.369 30.3083Z\",\n fill: \"#0E0A23\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M355.06 11.5211L355.059 11.5198C353.05 9.40003 350.128 8.18493 347.049 8.18359H347.045C343.964 8.18493 341.044 9.40003 339.032 11.5211C338.121 12.4951 337.448 13.5903 336.99 14.8573C336.53 13.5916 335.858 12.4951 334.946 11.5198C332.934 9.40003 330.015 8.18493 326.933 8.18359H326.93C323.85 8.18493 320.929 9.40003 318.919 11.5211C317 13.5663 316.106 16.2217 316.106 19.8723V34.4309H317.654V19.8723C317.654 16.644 318.44 14.2951 320.129 12.4831C321.785 10.7151 324.392 9.61721 326.932 9.61721C329.471 9.61721 332.077 10.7151 333.736 12.4831C335.423 14.2951 336.209 16.644 336.209 19.8723V34.2324L336.222 34.4309H337.769V19.8723C337.769 16.644 338.556 14.2951 340.242 12.4831C341.901 10.7151 344.508 9.61721 347.046 9.61721C349.586 9.61721 352.193 10.7151 353.849 12.4831C355.537 14.2951 356.325 16.644 356.325 19.8723V34.4309H357.871V19.8723C357.871 16.2217 356.979 13.5663 355.06 11.5211Z\",\n fill: \"#0E0A23\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M411.735 11.5198C409.723 9.40136 406.802 8.18493 403.722 8.18359H403.719C400.639 8.18493 397.72 9.40136 395.706 11.5211C393.789 13.5663 392.896 16.2217 392.896 19.8723V34.4309H394.443V19.8723C394.443 16.644 395.229 14.2951 396.916 12.4831C398.575 10.7151 401.182 9.61721 403.721 9.61721C406.26 9.61721 408.866 10.7151 410.524 12.4831C412.212 14.2951 412.998 16.644 412.998 19.8723V34.4309H414.546V19.8723C414.546 16.2217 413.652 13.5663 411.735 11.5198Z\",\n fill: \"#0E0A23\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M271.239 29.5027C268.953 32.1634 265.786 33.5703 262.085 33.5703C258.666 33.5703 255.776 32.3566 253.725 30.0609C251.8 27.9038 250.74 24.8767 250.74 21.5339V21.0449H273.492L273.486 20.8384C273.371 17.3703 272.14 14.1939 270.021 11.893C267.788 9.46408 264.785 8.17969 261.338 8.17969C254.3 8.17969 249.191 13.7969 249.191 21.5339C249.191 29.4654 254.493 35.0026 262.085 35.0026C266.244 35.0026 269.792 33.4691 272.344 30.5699L272.468 30.4286L271.38 29.3401L271.239 29.5027ZM250.881 19.613C251.714 13.5321 255.799 9.61499 261.339 9.61499C264.187 9.61499 266.707 10.6542 268.62 12.6208C270.377 14.4261 271.482 16.9016 271.747 19.613H250.881Z\",\n fill: \"#0E0A23\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M385.325 29.5027C383.038 32.1634 379.873 33.5703 376.171 33.5703C372.753 33.5703 369.861 32.3566 367.811 30.0609C365.884 27.9038 364.825 24.8767 364.825 21.5339V21.0449H387.579L387.572 20.8384C387.456 17.3703 386.227 14.1939 384.108 11.893C381.873 9.46408 378.871 8.17969 375.425 8.17969C368.385 8.17969 363.277 13.7969 363.277 21.5339C363.277 29.4654 368.58 35.0026 376.171 35.0026C380.331 35.0026 383.878 33.4691 386.43 30.5699L386.554 30.4286L385.466 29.3401L385.325 29.5027ZM364.967 19.613C365.799 13.5321 369.882 9.61499 375.425 9.61499C378.273 9.61499 380.792 10.6542 382.705 12.6208C384.462 14.4261 385.568 16.9016 385.832 19.613H364.967Z\",\n fill: \"#0E0A23\"\n })), _mask || (_mask = /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask0\",\n \"mask-type\": \"alpha\",\n maskUnits: \"userSpaceOnUse\",\n x: 189,\n y: 0,\n width: 59,\n height: 35\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M189.835 0H247.421V34.4333H189.835V0Z\",\n fill: \"white\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask0)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M245.775 8.75928L235.276 31.7997L224.779 8.75928H223.133L234.862 34.4337H235.693L247.421 8.75928H245.775Z\",\n fill: \"#0E0A23\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M191.299 -0.00195312C192.13 -0.00195312 192.764 0.633579 192.764 1.46364C192.764 2.29369 192.13 2.92922 191.299 2.92922C190.469 2.92922 189.835 2.29369 189.835 1.46364C189.835 0.633579 190.469 -0.00195312 191.299 -0.00195312Z\",\n fill: \"#0E0A23\"\n }))), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M190.525 34.4337H192.073V8.75928H190.525V34.4337Z\",\n fill: \"#0E0A23\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M286.043 20.3827C282.535 19.2382 279.221 18.1577 279.221 14.9281C279.221 11.4386 282.415 9.6133 285.57 9.6133C288.196 9.6133 290.371 10.4234 292.215 12.0888L292.361 12.222L293.384 11.1189L293.222 10.983C291.464 9.52803 289.322 8.17969 285.57 8.17969C280.92 8.17969 277.672 10.955 277.672 14.9281C277.672 19.2316 281.656 20.5253 285.506 21.7777C289.247 22.9928 292.779 24.1399 292.779 27.8532C292.779 31.4319 289.347 33.5703 286.03 33.5703C282.772 33.5703 280.506 32.619 277.953 30.1782L277.817 30.0489L276.725 31.0642L276.87 31.2094C279.423 33.7622 282.418 35.0026 286.03 35.0026C290.682 35.0026 294.328 31.8609 294.328 27.8532C294.328 23.0834 289.927 21.6471 286.043 20.3827Z\",\n fill: \"#0E0A23\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M444.714 20.3827C441.207 19.2382 437.892 18.1577 437.892 14.9281C437.892 11.4386 441.087 9.6133 444.242 9.6133C446.87 9.6133 449.043 10.4234 450.887 12.0888L451.033 12.222L452.057 11.1189L451.894 10.983C450.138 9.52803 447.994 8.17969 444.242 8.17969C439.594 8.17969 436.345 10.955 436.345 14.9281C436.345 19.2316 440.329 20.5253 444.18 21.7777C447.92 22.9928 451.453 24.1399 451.453 27.8532C451.453 31.4319 448.021 33.5703 444.702 33.5703C441.443 33.5703 439.179 32.619 436.625 30.1782L436.489 30.0489L435.396 31.0642L435.543 31.2094C438.095 33.7622 441.091 35.0026 444.702 35.0026C449.356 35.0026 453 31.8609 453 27.8532C453 23.0834 448.599 21.6471 444.714 20.3827Z\",\n fill: \"#0E0A23\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M217.681 11.5198C215.669 9.40136 212.749 8.18493 209.668 8.18359H209.666C206.585 8.18493 203.666 9.40136 201.653 11.5211C199.736 13.5663 198.843 16.2217 198.843 19.8723V34.4309H200.391V19.8723C200.391 16.644 201.176 14.2951 202.864 12.4831C204.522 10.7151 207.128 9.61721 209.667 9.61721C212.208 9.61721 214.814 10.7151 216.47 12.4831C218.159 14.2951 218.944 16.644 218.944 19.8723V34.4309H220.492V19.8723C220.492 16.2217 219.6 13.5663 217.681 11.5198Z\",\n fill: \"#0E0A23\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M312.141 10.1889V8.75659H301.801V1.56055H300.252V23.3152C300.252 26.9672 301.146 29.6212 303.064 31.6677C305.077 33.7875 307.997 35.0039 311.079 35.0039H311.278V33.5717H311.079C308.538 33.5717 305.931 32.4725 304.273 30.7058C302.587 28.8924 301.801 26.5448 301.801 23.3152V10.1889H312.141Z\",\n fill: \"#0E0A23\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M432.654 10.1889V8.75659H422.315V1.56055H420.767V23.3152C420.767 26.9672 421.661 29.6212 423.578 31.6677C425.59 33.7875 428.51 35.0039 431.593 35.0039H431.792V33.5717H431.593C429.054 33.5717 426.446 32.4725 424.788 30.7058C423.101 28.8924 422.315 26.5448 422.315 23.3152V10.1889H432.654Z\",\n fill: \"#0E0A23\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.d8560296c197a08cf91e4712cf3ab511.svg\";\nexport { ForwardRef as ReactComponent };","const SvgAlertCircle = (props: { [x: string]: string | number | object }) => {\n return (\n \n \n \n );\n};\n\nexport default SvgAlertCircle;\n","const SvgAlertTriangle = (props: { [x: string]: string | number | object }) => {\n return (\n \n \n \n );\n};\n\nexport default SvgAlertTriangle;\n","const SvgArrowLeft = (props: { [x: string]: string | number | object }) => {\n return (\n \n \n \n \n );\n};\n\nexport default SvgArrowLeft;\n","const SvgArrowRight = (props: { [x: string]: string | number | object }) => {\n return (\n \n \n \n \n );\n};\n\nexport default SvgArrowRight;\n","export const COLORS = {\n primary: \"#1B073A\",\n accent: \"#F2F5FF\",\n secondaryLight: \"#EBEBEB\",\n disableSecondary: \"#F3F3F4\",\n black: \"#000000\",\n bodyGrey: \"#222222\",\n cyan: \"#45CDFF\",\n darkGrey: \"#57646C\",\n green: \"#008000\",\n grey: \"#C1C1C1\",\n trafficLightGreen: \"#66B063\",\n lightGrey: \"#F8F8F8\",\n linkBlue: \"#1A0DAB\",\n magenta: \"#D40B81\",\n magentaHover: \"#B3096C\",\n midGrey: \"#909090\",\n navyBlue: \"#1B073A\",\n orange: \"#EB8734\",\n red: \"#DE3618\",\n selectGrey: \"#909090\",\n tagBlue: \"#2828AA\",\n tagBlueAccent: \"#E0E2F0\",\n tagPurple: \"#6D087C\",\n tagPurpleAccent: \"#E9DFEA\",\n utilityGrey: \"#EBEBEB\",\n white: \"#FFFFFF\",\n pastel: {\n cyan: \"#ECFAFF\",\n green: \"#E6F2E6\",\n orange: \"#FDF3EB\",\n red: \"#FCEBE8\",\n },\n};\n\n// Color system\n// PRIMARY COLOR (S)\n//Navy color variations\n\nexport const navy = {\n \"Navy 100\": \"#fff\",\n \"Navy 90\": \"#ece0ff\",\n \"Navy 80\": \"#caabfb\",\n \"Navy 70\": \"#a478e8\",\n \"Navy 60\": \"#7143b8\",\n \"Navy 50\": \"#411c7a\",\n \"Navy 40\": \"#1b073a\",\n \"Navy 30\": \"#13042b\",\n \"Navy 20\": \"#0c021c\",\n \"Navy 10\": \"#05010d\",\n \"Navy 0\": \"#1a0110\",\n};\n\n// ----------------------\n// ACCENT COLOR(S)\n\n// Pink color variations\n\nexport const pink = {\n \"Pink 100\": \"#fff\",\n \"Pink 90\": \"#ffe5f4\",\n \"Pink 80\": \"#fac8e5\",\n \"Pink 70\": \"#f095ca\",\n \"Pink 60\": \"#e567b1\",\n \"Pink 50\": \"#db3797\",\n \"Pink 40\": \"#d40b81\",\n \"Pink 30\": \"#b3096c\",\n \"Pink 20\": \"#7a0449\",\n \"Pink 10\": \"#4d012d\",\n \"Pink 0\": \"#1a0110\",\n};\n\n// Purple color variations\n\nexport const purple = {\n \"Purple 100\": \" #fff\",\n \"Purple 90\": \"#f0e6f2\",\n \"Purple 80\": \"#edcbf4\",\n \"Purple 70\": \"#dd60f0\",\n \"Purple 60\": \"#c32bda\",\n \"Purple 50\": \"#9814ac\",\n \"Purple 40\": \"#6d087c\",\n \"Purple 30\": \"#570463\",\n \"Purple 20\": \"#3b0144\",\n \"Purple 10\": \"#2d0134\",\n \"Purple 0\": \"#1a0110\",\n};\n\n// ----------------------\n// Cobalt color variations\n\nexport const cobalt = {\n \"Cobalt 100\": \" #fff\",\n \"Cobalt 90\": \"#eaeaf7\",\n \"Cobalt 80\": \"#d2d2f8\",\n \"Cobalt 70\": \"#7777ea\",\n \"Cobalt 60\": \"#5b5be3\",\n \"Cobalt 50\": \"#4141d1\",\n \"Cobalt 40\": \"#2828aa\",\n \"Cobalt 30\": \"#171794\",\n \"Cobalt 20\": \"#090974\",\n \"Cobalt 10\": \"#090974\",\n \"Cobalt 0\": \"#1a0110\",\n};\n\n// ----------------------\n// Cyan color variations\n\nexport const cyan = {\n \"Cyan 100\": \" #fff\",\n \"Cyan 90\": \"#ECFAFF\",\n \"Cyan 80\": \"#D7F4FF\",\n \"Cyan 70\": \"#BAECFF\",\n \"Cyan 60\": \"#97E3FF\",\n \"Cyan 50\": \"#6AD7FF\",\n \"Cyan 40\": \"#45CDFF\",\n \"Cyan 30\": \"#27AEDF\",\n \"Cyan 20\": \"#0E769C\",\n \"Cyan 10\": \"#034963\",\n \"Cyan 0\": \"#1A0110\",\n};\n\n// ----------------------\n//Utility color variations\n// red color variations\n\nexport const red = {\n \"red-100\": \"#fff\",\n \"red-90\": \"#FFEAE7\",\n \"red-80\": \"#F4B7AC\",\n \"red-70\": \"#EE8A78\",\n \"red-60\": \"#EC644C\",\n \"red-50\": \"#EB4D31\",\n \"red-40\": \"#DE3618\",\n \"red-30\": \"#BF2A0F\",\n \"red-20\": \"#8B1B06\",\n \"red-10\": \"#540E01\",\n \"red-0\": \"#1A0110\",\n};\n\nexport const orange = {\n \"orange-100\": \"#fff\",\n \"orange-90\": \"#FFF4EC\",\n \"orange-80\": \"#FCE6D4\",\n \"orange-70\": \"#F5D0B1\",\n \"orange-60\": \"#EFB585\",\n \"orange-50\": \"#ED9D5B\",\n \"orange-40\": \"#EB8734\",\n \"orange-30\": \"#D47221\",\n \"orange-20\": \"#AB550E\",\n \"orange-10\": \"#6F3404\",\n \"orange-0\": \"#1A0110\",\n};\n\n// green color variations\n\nexport const green = {\n \"green-100\": \"#fff\",\n \"green-90\": \"#E0FFE0\",\n \"green-80\": \"#A0F9A0\",\n \"green-70\": \"#66EF66\",\n \"green-60\": \"#1DD21D\",\n \"green-50\": \"#06A606\",\n \"green-40\": \"#008000\",\n \"green-30\": \"#006F00\",\n \"green-20\": \"#005600\",\n \"green-10\": \"#003800\",\n \"green-0\": \"#1A0110\",\n};\n\n// ----------------------\n// Link blue color variations\n\nexport const blue = {\n \"blue-100\": \"#fff\",\n \"blue-90\": \"#EAEAF7\",\n \"blue-80\": \"#D2D2F8\",\n \"blue-70\": \"#7777EA\",\n \"blue-60\": \"#5B5BE3\",\n \"blue-50\": \"#4141D1\",\n \"blue-40\": \"#1A0DAB\",\n \"blue-30\": \"#171794\",\n \"blue-20\": \"#090974\",\n \"blue-10\": \"#020247\",\n \"blue-0\": \"#1A0110\",\n};\n\n// ----------------------\n// Neutral color variations\n\nexport const neutral = {\n \"neutral-100\": \"#ffffff\",\n \"neutral-90\": \"#F8F8F8\",\n \"neutral-80\": \"#EBEBEB\",\n \"neutral-70\": \"#E3E3E3\",\n \"neutral-60\": \"#D6D6D6\",\n \"neutral-50\": \"#CCC\",\n \"neutral-40\": \"#C2C2C2\",\n \"neutral-30\": \"#909090\",\n \"neutral-20\": \"#524F4F\",\n \"neutral-10\": \"#222\",\n \"neutral-0\": \"#000000\",\n};\n\nexport const NOTIFICATION_COLOURS = Object.freeze({\n error: red[\"red-40\"],\n information: blue[\"blue-40\"],\n success: green[\"green-40\"],\n warning: orange[\"orange-40\"],\n});\n","const SvgCheck = (props: { [x: string]: string | number | object }) => {\n return (\n \n \n \n );\n};\n\nexport default SvgCheck;\n","const SvgCheckCircle = (props: { [x: string]: string | number | object }) => {\n return (\n \n \n \n );\n};\n\nexport default SvgCheckCircle;\n","import { neutral } from \"@/utils/styles/colors\";\nconst SvgClose = (props: {\n [x: string]: string | number | object;\n color?: any;\n}) => {\n return (\n \n \n \n );\n};\n\nexport default SvgClose;\n","const SvgDollar = (props: { [x: string]: string | number | object }) => {\n return (\n \n \n \n \n );\n};\n\nexport default SvgDollar;\n","import { neutral } from \"@/utils/styles/colors\";\nconst DoNotDisturb = (props: {\n [x: string]: string | number | object;\n color: string;\n}) => {\n return (\n \n \n \n );\n};\n\nexport default DoNotDisturb;\n","const SvgEye = (props: { [x: string]: string | number | object }) => {\n return (\n \n \n \n );\n};\n\nexport default SvgEye;\n","const SvgEyeOff = (props: { [x: string]: string | number | object }) => {\n return (\n \n \n \n );\n};\n\nexport default SvgEyeOff;\n","import { neutral } from \"@/utils/styles/colors\";\nconst InfoSolid = (props: {\n [x: string]: string | number | object;\n color: string;\n}) => {\n return (\n \n \n \n );\n};\n\nexport default InfoSolid;\n","const SvgInfo = (props: { [x: string]: string | number | object }) => {\n return (\n \n \n \n );\n};\n\nexport default SvgInfo;\n","const PercentageLite = (props: { [x: string]: string | number | object }) => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default PercentageLite;\n","const SterlingLite = (props: { [x: string]: string | number | object }) => {\n return (\n \n \n \n );\n};\n\nexport default SterlingLite;\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar 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\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(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)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\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}\n\nexport function __spreadArray(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}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\nexport var SCOPE = '@scope'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span', 0) ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span', 0) ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch', 0) ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine, filter, assign} from './Utility.js'\nimport {copy, lift, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(children = element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, callback = /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import{__spreadArray as e,__assign as t}from\"tslib\";import n from\"@emotion/is-prop-valid\";import o,{useRef as r,useState as s,useMemo as i,useEffect as a,useContext as c,useDebugValue as l,createElement as u}from\"react\";import p from\"shallowequal\";import*as d from\"stylis\";import h from\"@emotion/unitless\";var f=\"undefined\"!=typeof process&&void 0!==process.env&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||\"data-styled\",m=\"active\",y=\"data-styled-version\",v=\"6.1.11\",g=\"/*!sc*/\\n\",S=\"undefined\"!=typeof window&&\"HTMLElement\"in window,w=Boolean(\"boolean\"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&\"\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY?\"false\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.SC_DISABLE_SPEEDY&&\"\"!==process.env.SC_DISABLE_SPEEDY?\"false\"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY:\"production\"!==process.env.NODE_ENV),b={},E=/invalid hook call/i,N=new Set,P=function(t,n){if(\"production\"!==process.env.NODE_ENV){var o=n?' with the id of \"'.concat(n,'\"'):\"\",s=\"The component \".concat(t).concat(o,\" has been created dynamically.\\n\")+\"You may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\",i=console.error;try{var a=!0;console.error=function(t){for(var n=[],o=1;o?@[\\\\\\]^`{|}~-]+/g,D=/(^-|-$)/g;function R(e){return e.replace(O,\"-\").replace(D,\"\")}var T=/(a)(d)/gi,k=52,j=function(e){return String.fromCharCode(e+(e>25?39:97))};function x(e){var t,n=\"\";for(t=Math.abs(e);t>k;t=t/k|0)n=j(t%k)+n;return(j(t%k)+n).replace(T,\"$1-$2\")}var V,F=5381,M=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},$=function(e){return M(F,e)};function z(e){return x($(e)>>>0)}function B(e){return\"production\"!==process.env.NODE_ENV&&\"string\"==typeof e&&e||e.displayName||e.name||\"Component\"}function L(e){return\"string\"==typeof e&&(\"production\"===process.env.NODE_ENV||e.charAt(0)===e.charAt(0).toLowerCase())}var G=\"function\"==typeof Symbol&&Symbol.for,Y=G?Symbol.for(\"react.memo\"):60115,W=G?Symbol.for(\"react.forward_ref\"):60112,q={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},H={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},U={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},J=((V={})[W]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},V[Y]=U,V);function X(e){return(\"type\"in(t=e)&&t.type.$$typeof)===Y?U:\"$$typeof\"in e?J[e.$$typeof]:q;var t}var Z=Object.defineProperty,K=Object.getOwnPropertyNames,Q=Object.getOwnPropertySymbols,ee=Object.getOwnPropertyDescriptor,te=Object.getPrototypeOf,ne=Object.prototype;function oe(e,t,n){if(\"string\"!=typeof t){if(ne){var o=te(t);o&&o!==ne&&oe(e,o,n)}var r=K(t);Q&&(r=r.concat(Q(t)));for(var s=X(e),i=X(t),a=0;a ({})}\\n```\\n\\n',8:'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',9:\"Missing document ``\\n\\n\",10:\"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",11:\"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",12:\"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",13:\"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",14:'ThemeProvider: \"theme\" prop is required.\\n\\n',15:\"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to ``, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",16:\"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",17:\"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\",18:\"ThemeProvider: Please make sure your useTheme hook is within a ``\"}:{};function de(){for(var e=[],t=0;t0?\" Args: \".concat(n.join(\", \")):\"\")):new Error(de.apply(void 0,e([pe[t]],n,!1)).trim())}var fe=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}return e.prototype.indexOfGroup=function(e){for(var t=0,n=0;n=this.groupSizes.length){for(var n=this.groupSizes,o=n.length,r=o;e>=r;)if((r<<=1)<0)throw he(16,\"\".concat(e));this.groupSizes=new Uint32Array(r),this.groupSizes.set(n),this.length=r;for(var s=o;s=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],o=this.indexOfGroup(e),r=o+n,s=o;sme))throw he(16,\"\".concat(t));return ye.set(e,t),ve.set(t,e),t},we=function(e,t){ge=t+1,ye.set(e,t),ve.set(t,e)},be=\"style[\".concat(f,\"][\").concat(y,'=\"').concat(v,'\"]'),Ee=new RegExp(\"^\".concat(f,'\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)')),Ne=function(e,t,n){for(var o,r=n.split(\",\"),s=0,i=r.length;s=0){var n=document.createTextNode(t);return this.element.insertBefore(n,this.nodes[e]||null),this.length++,!0}return!1},e.prototype.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},e.prototype.getRule=function(e){return e0&&(c+=\"\".concat(e,\",\"))}),o+=\"\".concat(i).concat(a,'{content:\"').concat(c,'\"}').concat(g)},s=0;s0?\".\".concat(t):e},u=c.slice();u.push(function(e){e.type===d.RULESET&&e.value.includes(\"&\")&&(e.props[0]=e.props[0].replace(ke,n).replace(o,l))}),i.prefix&&u.push(d.prefixer),u.push(d.stringify);var p=function(e,r,s,a){void 0===r&&(r=\"\"),void 0===s&&(s=\"\"),void 0===a&&(a=\"&\"),t=a,n=r,o=new RegExp(\"\\\\\".concat(n,\"\\\\b\"),\"g\");var c=e.replace(je,\"\"),l=d.compile(s||r?\"\".concat(s,\" \").concat(r,\" { \").concat(c,\" }\"):c);i.namespace&&(l=xe(l,i.namespace));var p=[];return d.serialize(l,d.middleware(u.concat(d.rulesheet(function(e){return p.push(e)})))),p};return p.hash=c.length?c.reduce(function(e,t){return t.name||he(15),M(e,t.name)},F).toString():\"\",p}var Fe=new Te,Me=Ve(),$e=o.createContext({shouldForwardProp:void 0,styleSheet:Fe,stylis:Me}),ze=$e.Consumer,Be=o.createContext(void 0);function Le(){return c($e)}function Ge(e){var t=s(e.stylisPlugins),n=t[0],r=t[1],c=Le().styleSheet,l=i(function(){var t=c;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t},[e.disableCSSOMInjection,e.sheet,e.target,c]),u=i(function(){return Ve({options:{namespace:e.namespace,prefix:e.enableVendorPrefixes},plugins:n})},[e.enableVendorPrefixes,e.namespace,n]);a(function(){p(n,e.stylisPlugins)||r(e.stylisPlugins)},[e.stylisPlugins]);var d=i(function(){return{shouldForwardProp:e.shouldForwardProp,styleSheet:l,stylis:u}},[e.shouldForwardProp,l,u]);return o.createElement($e.Provider,{value:d},o.createElement(Be.Provider,{value:u},e.children))}var Ye=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=Me);var o=n.name+t.hash;e.hasNameForId(n.id,o)||e.insertRules(n.id,o,t(n.rules,o,\"@keyframes\"))},this.name=e,this.id=\"sc-keyframes-\".concat(e),this.rules=t,ue(this,function(){throw he(12,String(n.name))})}return e.prototype.getName=function(e){return void 0===e&&(e=Me),this.name+e.hash},e}(),We=function(e){return e>=\"A\"&&e<=\"Z\"};function qe(e){for(var t=\"\",n=0;n>>0);if(!t.hasNameForId(this.componentId,s)){var i=n(r,\".\".concat(s),void 0,this.componentId);t.insertRules(this.componentId,s,i)}o=ie(o,s),this.staticRulesId=s}else{for(var a=M(this.baseHash,n.hash),c=\"\",l=0;l>>0);t.hasNameForId(this.componentId,d)||t.insertRules(this.componentId,d,n(c,\".\".concat(d),void 0,this.componentId)),o=ie(o,d)}}return o},e}(),Qe=o.createContext(void 0),et=Qe.Consumer;function tt(){var e=c(Qe);if(!e)throw he(18);return e}function nt(e){var n=o.useContext(Qe),r=i(function(){return function(e,n){if(!e)throw he(14);if(re(e)){var o=e(n);if(\"production\"!==process.env.NODE_ENV&&(null===o||Array.isArray(o)||\"object\"!=typeof o))throw he(7);return o}if(Array.isArray(e)||\"object\"!=typeof e)throw he(8);return n?t(t({},n),e):e}(e.theme,n)},[e.theme,n]);return e.children?o.createElement(Qe.Provider,{value:r},e.children):null}var ot={},rt=new Set;function st(e,r,s){var i=se(e),a=e,c=!L(e),p=r.attrs,d=void 0===p?_:p,h=r.componentId,f=void 0===h?function(e,t){var n=\"string\"!=typeof e?\"sc\":R(e);ot[n]=(ot[n]||0)+1;var o=\"\".concat(n,\"-\").concat(z(v+n+ot[n]));return t?\"\".concat(t,\"-\").concat(o):o}(r.displayName,r.parentComponentId):h,m=r.displayName,y=void 0===m?function(e){return L(e)?\"styled.\".concat(e):\"Styled(\".concat(B(e),\")\")}(e):m,g=r.displayName&&r.componentId?\"\".concat(R(r.displayName),\"-\").concat(r.componentId):r.componentId||f,S=i&&a.attrs?a.attrs.concat(d).filter(Boolean):d,w=r.shouldForwardProp;if(i&&a.shouldForwardProp){var b=a.shouldForwardProp;if(r.shouldForwardProp){var E=r.shouldForwardProp;w=function(e,t){return b(e,t)&&E(e,t)}}else w=b}var N=new Ke(s,g,i?a.componentStyle:void 0);function O(e,r){return function(e,r,s){var i=e.attrs,a=e.componentStyle,c=e.defaultProps,p=e.foldedComponentIds,d=e.styledComponentId,h=e.target,f=o.useContext(Qe),m=Le(),y=e.shouldForwardProp||m.shouldForwardProp;\"production\"!==process.env.NODE_ENV&&l(d);var v=I(r,f,c)||C,g=function(e,n,o){for(var r,s=t(t({},n),{className:void 0,theme:o}),i=0;i` (connect an API like `@emotion/is-prop-valid`) or consider using transient props (`$` prefix for automatic filtering.)')))));var E=function(e,t){var n=Le(),o=e.generateAndInjectStyles(t,n.styleSheet,n.stylis);return\"production\"!==process.env.NODE_ENV&&l(o),o}(a,g);\"production\"!==process.env.NODE_ENV&&e.warnTooManyClasses&&e.warnTooManyClasses(E);var N=ie(p,d);return E&&(N+=\" \"+E),g.className&&(N+=\" \"+g.className),w[L(S)&&!A.has(S)?\"class\":\"className\"]=N,w.ref=s,u(S,w)}(D,e,r)}O.displayName=y;var D=o.forwardRef(O);return D.attrs=S,D.componentStyle=N,D.displayName=y,D.shouldForwardProp=w,D.foldedComponentIds=i?ie(a.foldedComponentIds,a.styledComponentId):\"\",D.styledComponentId=g,D.target=i?a.target:e,Object.defineProperty(D,\"defaultProps\",{get:function(){return this._foldedDefaultProps},set:function(e){this._foldedDefaultProps=i?function(e){for(var t=[],n=1;n=200)){var s=t?' with the id of \"'.concat(t,'\"'):\"\";console.warn(\"Over \".concat(200,\" classes were generated for component \").concat(e).concat(s,\".\\n\")+\"Consider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n \"),o=!0,n={}}}}(y,g)),ue(D,function(){return\".\".concat(D.styledComponentId)}),c&&oe(D,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0}),D}function it(e,t){for(var n=[e[0]],o=0,r=t.length;o2&&Te.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,o)},e}();function ht(n){for(var r=[],s=1;s meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.\"),t.styleSheet.server&&u(r,e,t.styleSheet,n,t.stylis),o.useLayoutEffect(function(){if(!t.styleSheet.server)return u(r,e,t.styleSheet,n,t.stylis),function(){return c.removeStyles(r,t.styleSheet)}},[r,e,t.styleSheet,n,t.stylis]),null};function u(e,n,o,r,s){if(c.isStatic)c.renderStyles(e,b,o,s);else{var i=t(t({},n),{theme:I(n,r,l.defaultProps)});c.renderStyles(e,i,o,s)}}return o.memo(l)}function ft(t){for(var n=[],o=1;o\").concat(t,\"\")},this.getStyleTags=function(){if(e.sealed)throw he(2);return e._emitSheetCSS()},this.getStyleElement=function(){var n;if(e.sealed)throw he(2);var r=((n={})[f]=\"\",n[y]=v,n.dangerouslySetInnerHTML={__html:e.instance.toString()},n),s=_e();return s&&(r.nonce=s),[o.createElement(\"style\",t({},r,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0},this.instance=new Te({isServer:!0}),this.sealed=!1}return e.prototype.collectStyles=function(e){if(this.sealed)throw he(2);return o.createElement(Ge,{sheet:this.instance},e)},e.prototype.interleaveWithNodeStream=function(e){throw he(3)},e}(),vt={StyleSheet:Te,mainSheet:Fe};\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\");var gt=\"__sc-\".concat(f,\"__\");\"production\"!==process.env.NODE_ENV&&\"test\"!==process.env.NODE_ENV&&\"undefined\"!=typeof window&&(window[gt]||(window[gt]=0),1===window[gt]&&console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"),window[gt]+=1);export{yt as ServerStyleSheet,ze as StyleSheetConsumer,$e as StyleSheetContext,Ge as StyleSheetManager,et as ThemeConsumer,Qe as ThemeContext,nt as ThemeProvider,vt as __PRIVATE__,ht as createGlobalStyle,ct as css,pt as default,se as isStyledComponent,ft as keyframes,pt as styled,tt as useTheme,v as version,mt as withTheme};\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","import styled, { css, keyframes } from \"styled-components\";\n\nconst sizeOptions = {\n sm: 1,\n md: 1.5,\n lg: 2,\n xl: 2.5,\n};\n\nconst rotate = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nexport const Preloader = styled.div<{\n $buttonVariant: string | null;\n $cs: string | null;\n $platform: string;\n $size: string;\n}>`\n ${({ $buttonVariant }) =>\n $buttonVariant &&\n css`\n margin-left: 0;\n width: 100%;\n `}\n width: ${({ $size }) => sizeOptions[$size]}rem;\n height: ${({ $size }) => sizeOptions[$size]}rem;\n display: inline-block;\n border-width: 0.15rem;\n border-style: solid;\n border-color: ${({ theme, $platform, $buttonVariant }) =>\n $buttonVariant !== \"solid\" || !$buttonVariant\n ? `${theme[$platform].loader[\"border-top\"]} ${theme[$platform].loader[\"border-right\"]} ${theme[$platform].loader[\"border-bottom\"]} ${theme[$platform].loader[\"border-left\"]}`\n : `${theme[$platform].colors.white} ${theme[$platform].colors.white} transparent ${theme[$platform].colors.white}`};\n border-radius: 50%;\n animation: ${rotate} 0.6s linear infinite;\n`;\n","import styled, { createGlobalStyle, css } from \"styled-components\";\nimport { COLORS } from \"./colors\";\n\nexport const GlobalStyle = createGlobalStyle`\n fieldset {\n margin: 0;\n padding: 0;\n }\n`;\n\nexport const ANIMATION_DURATION = Object.freeze({\n formatJs: 300,\n formatCss: \"0.3s\",\n});\n\nexport const TRANSITION_TIMING_FUNCTION = {\n easing: \"cubic-bezier(0.17, 0.67, 0.6, 0.88)\",\n} as const;\n\n// Based on https://wiki.octopusgroup.com/x/pqXGD\nexport const BREAKPOINTS = Object.freeze({\n mobile: 320,\n tablet: 501,\n laptop: 992,\n desktop: 1104,\n xs: 320,\n sm: 568,\n md: 768,\n lg: 1024,\n xl: 1440,\n xxl: 1920,\n});\n\nexport const colorPallet = {\n ...COLORS,\n};\n\ntype Device = {\n isMobile: boolean;\n isTablet: boolean;\n isDesktop: boolean;\n};\n\nexport const DEFAULT_WINDOW_SIZE = Object.freeze({ width: 1440, height: 1080 });\n\n// Helpers\nexport const calculateDevice = ({\n width,\n}: {\n width: number;\n height?: number;\n}) => {\n const device: Device = { isMobile: false, isTablet: false, isDesktop: false };\n if (width <= BREAKPOINTS.tablet) {\n device.isMobile = true;\n } else if (width < BREAKPOINTS.desktop) {\n device.isTablet = true;\n } else if (width >= BREAKPOINTS.desktop) {\n device.isDesktop = true;\n }\n return { ...device };\n};\n\nexport const NOTIFICATION_COLOURS = {\n error: {\n background: COLORS.pastel.red,\n border: COLORS.red,\n },\n information: {\n background: COLORS.pastel.cyan,\n border: COLORS.cyan,\n },\n success: {\n background: COLORS.pastel.green,\n border: COLORS.green,\n },\n warning: {\n background: COLORS.pastel.orange,\n border: COLORS.orange,\n },\n} as const;\n\n// Mixins\nexport const MobileStyles = (styles: any) => css`\n @media (max-width: ${BREAKPOINTS.tablet}px) {\n ${styles}\n }\n`;\n\nexport const TabletStyles = (styles: any) => css`\n @media (max-width: ${BREAKPOINTS.desktop}px) {\n ${styles}\n }\n`;\n\nexport const responsiveDesktopFirst = (styles: any, breakpoint: string) => css`\n @media (max-width: ${breakpoint}px) {\n ${styles}\n }\n`;\n\nexport const NotificationDotStyles = styled.span<{ $small?: boolean }>`\n position: relative;\n display: inline-block;\n ${({ $small = true }) =>\n $small\n ? `\n width: 0.5rem;\n height: 0.5rem;`\n : `\n width: 0.75rem;\n height: 0.75rem;`}\n border-radius: 100%;\n background-color: ${COLORS.linkBlue};\n`;\n","import { ReactElement } from \"react\";\n\nexport function createElem({ customText = \"\" } = {}) {\n const newElem = document.createElement(\"footer\");\n const text = document.createTextNode(customText || \"Hello World\");\n newElem.appendChild(text);\n document.body.appendChild(newElem);\n}\n\nexport const debounce = (func: any, wait = 0, immediate = true) => {\n let timeout: any;\n return (...args: any[]) => {\n const context = this;\n if (timeout && !immediate) clearTimeout(timeout);\n if (!timeout && immediate) func.apply(context, args);\n const handler = () => {\n timeout = null;\n func.apply(context, args);\n };\n\n timeout = setTimeout(handler, wait);\n };\n};\n\nexport function GenericComp({\n children,\n ...rest\n}: Readonly<{ children: ReactElement }>) {\n return
{children}
;\n}\n\n/**\n * Generates random alphanumeric strings for ids.\n *\n * @param {number} length\n * @returns {string}\n */\nexport function randomString({ length = 5, useAlphabetOnly = false } = {}) {\n let result = \"\";\n const ALL_CHARS =\n \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n const ALPHABETIC_CHARS =\n \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n\n const chars = useAlphabetOnly ? ALPHABETIC_CHARS : ALL_CHARS;\n\n for (let i = 0; i < length; ++i) {\n result += chars[Math.round(Math.random() * (chars.length - 1))];\n }\n return result;\n}\n\nexport function randomClassName() {\n return randomString({ useAlphabetOnly: true });\n}\n\nexport const truncate = (str: string, max = 10) => {\n const array = str.trim().split(\" \");\n const ellipsis = array.length > max ? \"...\" : \"\";\n\n return array.slice(0, max).join(\" \") + ellipsis;\n};\n\nexport const ALLOWED_TAGS = [\"p\"];\n\nexport const Fallback = ({ error }: { error: { message: string } }) => {\n // Call resetErrorBoundary() to reset the error boundary and retry the render.\n\n return (\n
\n

Something went wrong:

\n
{error.message}
\n
\n );\n};\n\nconst alreadyWarned: { [message: string]: boolean } = {};\n\nexport function warnOnce(condition: boolean, message: string): void {\n if (!condition && !alreadyWarned[message]) {\n alreadyWarned[message] = true;\n }\n}\n\n/**\n *\n * @param {Number} value\n * @param {Object} [options]\n\n */\n\nexport function formatNumber(\n value: any,\n { returnIfFalsey = \"-\", returnIfZero = false, ...options }: Options = {}\n) {\n const noCommaValue =\n typeof value == \"string\" ? value.replace(/,/g, \"\").replace(\",\", \"\") : value;\n const floatedNum = parseFloat(noCommaValue);\n if (!floatedNum && floatedNum !== 0) return returnIfFalsey;\n if (floatedNum === 0 && returnIfZero) return returnIfZero;\n\n return floatedNum.toLocaleString(\"en\", { ...options });\n}\n\ninterface Options {\n [x: string]: number | string | boolean;\n}\n\nexport const formatPercentage = (number: number | string, options: Options) => {\n if (!number && number !== 0) return \"\";\n return `${number.toLocaleString(\"en\", { ...options })}%`;\n};\n\ninterface FormatCurrencyOptions {\n [x: string]: string | boolean;\n}\n\nexport function formatCurrency(\n number: number | string | null,\n {\n currencyISOCode = \"GBP\",\n returnIfFalsey = \"£ -\",\n returnIfZero = false,\n ...options\n }: FormatCurrencyOptions = {}\n) {\n const floatedNum = parseFloat(number as string);\n if (!floatedNum && floatedNum !== 0) return returnIfFalsey;\n if (floatedNum === 0 && returnIfZero) return returnIfZero;\n\n return floatedNum.toLocaleString(\"en\", {\n style: \"currency\",\n currency: currencyISOCode as string,\n ...options,\n });\n}\n\nexport const hexToRGBA = (hex, alpha) => {\n const r = parseInt(hex.slice(1, 3), 16);\n const g = parseInt(hex.slice(3, 5), 16);\n const b = parseInt(hex.slice(5, 7), 16);\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n};\n","export const escapeRegExp = (stringToGoIntoTheRegex) => {\n return stringToGoIntoTheRegex.replace(/[-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n};\n","import { escapeRegExp } from \"./escapeRegExp\";\n\nexport const abbrValue = (\n value,\n decimalSeparator = \".\",\n _decimalPlaces = 10\n) => {\n if (value > 999) {\n let valueLength = (\"\" + value).length;\n const p = Math.pow;\n const d = p(10, _decimalPlaces);\n valueLength -= valueLength % 3;\n\n const abbrValue =\n Math.round((value * d) / p(10, valueLength)) / d +\n \" kMGTPE\"[valueLength / 3];\n return abbrValue.replace(\".\", decimalSeparator);\n }\n\n return String(value);\n};\n\nconst abbrMap = { b: 1000000000, k: 1000, m: 1000000 };\n\nexport const parseAbbrValue = (value, decimalSeparator = \".\") => {\n const reg = new RegExp(\n `(\\\\d+(${escapeRegExp(decimalSeparator)}\\\\d*)?)([kmb])$`,\n \"i\"\n );\n const match = value.match(reg);\n\n if (match) {\n const [, digits, , abbr] = match;\n const multiplier = abbrMap[abbr.toLowerCase()];\n\n return Number(digits.replace(decimalSeparator, \".\")) * multiplier;\n }\n\n return undefined;\n};\n","import { escapeRegExp } from \"./escapeRegExp\";\nimport { parseAbbrValue } from \"./parseAbbrValue\";\nimport { removeInvalidChars } from \"./removeInvalidChars\";\nimport { removeSeparators } from \"./removeSeparators\";\n\nexport const cleanValue = ({\n allowDecimals = true,\n allowNegativeValue = false,\n decimalSeparator = \".\",\n decimalsLimit = 2,\n disableAbbreviations = false,\n groupSeparator = \",\",\n prefix = \"\",\n transformRawValue = (rawValue) => rawValue,\n value,\n}) => {\n const transformedValue = transformRawValue(value);\n\n if (transformedValue === \"-\") {\n return transformedValue;\n }\n\n const abbreviations = disableAbbreviations ? [] : [\"k\", \"m\", \"b\"];\n const reg = new RegExp(`((^|\\\\D)-\\\\d)|(-${escapeRegExp(prefix)})`);\n const isNegative = reg.test(transformedValue);\n\n const [prefixWithValue, preValue] =\n RegExp(`(\\\\d+)-?${escapeRegExp(prefix)}`).exec(value) || [];\n const withoutPrefix = prefix\n ? prefixWithValue\n ? transformedValue.replace(prefixWithValue, \"\").concat(preValue)\n : transformedValue.replace(prefix, \"\")\n : transformedValue;\n const withoutSeparators = removeSeparators(withoutPrefix, groupSeparator);\n const withoutInvalidChars = removeInvalidChars(withoutSeparators, [\n groupSeparator,\n decimalSeparator,\n ...abbreviations,\n ]);\n\n let valueOnly = withoutInvalidChars;\n\n if (!disableAbbreviations) {\n if (\n abbreviations.some(\n (letter) => letter === withoutInvalidChars.toLowerCase()\n )\n ) {\n return \"\";\n }\n const parsed = parseAbbrValue(withoutInvalidChars, decimalSeparator);\n if (parsed) {\n valueOnly = String(parsed);\n }\n }\n\n const includeNegative = isNegative && allowNegativeValue ? \"-\" : \"\";\n\n if (decimalSeparator && valueOnly.includes(decimalSeparator)) {\n const [int, decimals] = withoutInvalidChars.split(decimalSeparator);\n const trimmedDecimals =\n decimalsLimit && decimals ? decimals.slice(0, decimalsLimit) : decimals;\n const includeDecimals = allowDecimals\n ? `${decimalSeparator}${trimmedDecimals}`\n : \"\";\n\n return `${includeNegative}${int}${includeDecimals}`;\n }\n\n return `${includeNegative}${valueOnly}`;\n};\n","import { escapeRegExp } from \"./escapeRegExp\";\n\nexport const removeSeparators = (value, separator = \",\") => {\n const reg = new RegExp(escapeRegExp(separator), \"g\");\n return value.replace(reg, \"\");\n};\n","import { escapeRegExp } from \"./escapeRegExp\";\n\nexport const removeInvalidChars = (value, validChars) => {\n const chars = escapeRegExp(validChars.join(\"\"));\n const reg = new RegExp(`[^\\\\d${chars}]`, \"gi\");\n return value.replace(reg, \"\");\n};\n","import { escapeRegExp } from \"./escapeRegExp\";\n\nexport const getSuffix = (\n value: string,\n { decimalSeparator = \".\", groupSeparator = \",\" }\n) => {\n const suffixReg = new RegExp(\n `\\\\d([^${escapeRegExp(groupSeparator)}${escapeRegExp(decimalSeparator)}0-9]+)`\n );\n const suffixMatch = value.match(suffixReg);\n return suffixMatch ? suffixMatch[1] : undefined;\n};\n","import { escapeRegExp } from \"./escapeRegExp\";\nimport { getSuffix } from \"./getSuffix\";\n\nexport const formatValue = (options) => {\n const {\n decimalScale,\n decimalSeparator,\n intlConfig,\n prefix = \"\",\n suffix = \"\",\n value: _value,\n } = options;\n\n if (_value === \"\" || _value === undefined) {\n return \"\";\n }\n\n if (_value === \"-\") {\n return \"-\";\n }\n\n const isNegative = new RegExp(\n `^\\\\d?-${prefix ? `${escapeRegExp(prefix)}?` : \"\"}\\\\d`\n ).test(_value);\n\n const value =\n decimalSeparator !== \".\"\n ? replaceDecimalSeparator(_value, decimalSeparator, isNegative)\n : _value;\n\n const numberFormatter = intlConfig\n ? new Intl.NumberFormat(\n intlConfig.locale,\n intlConfig.currency\n ? {\n currency: intlConfig.currency,\n maximumFractionDigits: 20,\n minimumFractionDigits: decimalScale || 0,\n style: \"currency\",\n }\n : undefined\n )\n : new Intl.NumberFormat(undefined, {\n maximumFractionDigits: 20,\n minimumFractionDigits: decimalScale || 0,\n });\n\n const parts = numberFormatter.formatToParts(Number(value));\n\n let formatted = replaceParts(parts, options);\n\n const intlSuffix = getSuffix(formatted, { ...options });\n\n const includeDecimalSeparator =\n _value.slice(-1) === decimalSeparator ? decimalSeparator : \"\";\n\n const [, decimals] = value.match(RegExp(\"\\\\d+\\\\.(\\\\d+)\")) || [];\n\n if (decimalScale === undefined && decimals && decimalSeparator) {\n if (formatted.includes(decimalSeparator)) {\n formatted = formatted.replace(\n RegExp(`(\\\\d+)(${escapeRegExp(decimalSeparator)})(\\\\d+)`, \"g\"),\n `$1$2${decimals}`\n );\n } else {\n if (intlSuffix && !suffix) {\n formatted = formatted.replace(\n intlSuffix,\n `${decimalSeparator}${decimals}${intlSuffix}`\n );\n } else {\n formatted = `${formatted}${decimalSeparator}${decimals}`;\n }\n }\n }\n\n if (suffix && includeDecimalSeparator) {\n return `${formatted}${includeDecimalSeparator}${suffix}`;\n }\n\n if (intlSuffix && includeDecimalSeparator) {\n return formatted.replace(\n intlSuffix,\n `${includeDecimalSeparator}${intlSuffix}`\n );\n }\n\n if (intlSuffix && suffix) {\n return formatted.replace(intlSuffix, `${includeDecimalSeparator}${suffix}`);\n }\n\n return [formatted, includeDecimalSeparator, suffix].join(\"\");\n};\n\nconst replaceDecimalSeparator = (value, decimalSeparator, isNegative) => {\n let newValue = value;\n if (decimalSeparator && decimalSeparator !== \".\") {\n newValue = newValue.replace(\n RegExp(escapeRegExp(decimalSeparator), \"g\"),\n \".\"\n );\n if (isNegative && decimalSeparator === \"-\") {\n newValue = `-${newValue.slice(1)}`;\n }\n }\n return newValue;\n};\n\nconst replaceParts = (\n parts,\n {\n decimalScale,\n decimalSeparator,\n disableGroupSeparators = false,\n groupSeparator,\n prefix,\n }\n) => {\n return parts\n .reduce(\n (prev, { type, value }, i) => {\n if (i === 0 && prefix) {\n if (type === \"minusSign\") {\n return [value, prefix];\n }\n\n if (type === \"currency\") {\n return [...prev, prefix];\n }\n\n return [prefix, value];\n }\n\n if (type === \"currency\") {\n return prefix ? prev : [...prev, value];\n }\n\n if (type === \"group\") {\n return !disableGroupSeparators\n ? [...prev, groupSeparator !== undefined ? groupSeparator : value]\n : prev;\n }\n\n if (type === \"decimal\") {\n if (decimalScale !== undefined && decimalScale === 0) {\n return prev;\n }\n\n return [\n ...prev,\n decimalSeparator !== undefined ? decimalSeparator : value,\n ];\n }\n\n if (type === \"fraction\") {\n return [\n ...prev,\n decimalScale !== undefined ? value.slice(0, decimalScale) : value,\n ];\n }\n\n return [...prev, value];\n },\n [\"\"]\n )\n .join(\"\");\n};\n","export const isNumber = (input) => RegExp(/\\d/, \"gi\").test(input);\n","import { createContext } from \"react\";\n\nexport type ErrorBoundaryContextType = {\n didCatch: boolean;\n error: any;\n resetErrorBoundary: (...args: any[]) => void;\n};\n\nexport const ErrorBoundaryContext =\n createContext(null);\n","// Icons\nimport {\n AlertCircle as InformationIcon,\n AlertTriangle as WarningIcon,\n CheckCircle as SuccessIcon,\n AlertCircle as ErrorIcon,\n} from \"@/Icons\";\n\nimport { hexToRGBA } from \"@/utils\";\n\nconst colors = {\n \"blue-90\": \"#EAEAF7\",\n \"blue-40\": \"#1a0dab\",\n \"cyan-30\": \"#27aedf\",\n \"cyan-40\": \"#45cdff\",\n \"cyan-50\": \"#6AD7FF\",\n \"cyan-90\": \"#ECFAFF\",\n \"green-90\": \"#E0FFE0\",\n \"green-40\": \"#008000\",\n \"navy-40\": \"#1b073a\",\n \"orange-90\": \"#FFF4EC\",\n \"orange-40\": \"#eb8734\",\n \"pink-30\": \"#b3096c\",\n \"pink-40\": \"#d40b81\",\n \"red-90\": \"#FFEAE7\",\n \"red-40\": \"#de3618\",\n \"neutral-80\": \"#ebebeb\",\n \"neutral-90\": \"#f8f8f8\",\n \"neutral-60\": \"#d6d6d6\",\n \"neutral-70\": \"#e3e3e3\",\n \"neutral-40\": \"#c2c2c2\",\n \"neutral-30\": \"#909090\",\n \"neutral-50\": \"#ccc\",\n \"neutral-10\": \"#222\",\n \"neutral-20\": \"#524f4f\",\n white: \"#fff\",\n black: \"#000\",\n};\n\nexport const octopusOnlineTheme = {\n \"octopus-online\": {\n colors: {\n primary: colors[\"navy-40\"],\n secondary: colors[\"cyan-40\"],\n \"secondary-hover\": colors[\"cyan-40\"],\n accent: colors[\"pink-40\"],\n \"accent-hover\": colors[\"pink-30\"],\n \"accent-tabs-hover\": colors[\"neutral-20\"],\n error: colors[\"red-40\"],\n warning: colors[\"orange-40\"],\n success: colors[\"green-40\"],\n information: colors[\"neutral-10\"],\n disabled: colors[\"neutral-80\"],\n \"body-background\": colors[\"neutral-10\"],\n \"link-color\": colors[\"blue-40\"],\n \"blue-90\": \"#EAEAF7\",\n \"blue-40\": colors[\"blue-40\"],\n \"cyan-30\": colors[\"cyan-30\"],\n \"cyan-40\": colors[\"cyan-40\"],\n \"green-40\": colors[\"green-40\"],\n \"navy-40\": colors[\"navy-40\"],\n \"orange-40\": colors[\"orange-40\"],\n \"pink-30\": colors[\"pink-30\"],\n \"pink-40\": colors[\"pink-40\"],\n \"red-40\": colors[\"red-40\"],\n \"neutral-80\": colors[\"neutral-80\"],\n \"neutral-90\": colors[\"neutral-90\"],\n \"neutral-60\": colors[\"neutral-60\"],\n \"neutral-70\": colors[\"neutral-70\"],\n \"neutral-40\": colors[\"neutral-40\"],\n \"neutral-30\": colors[\"neutral-30\"],\n \"neutral-50\": colors[\"neutral-50\"],\n \"neutral-10\": colors[\"neutral-10\"],\n \"neutral-20\": colors[\"neutral-20\"],\n white: \"#ffffff\",\n black: \"#000000\",\n },\n accordion: {\n \"border-color\": colors[\"neutral-40\"],\n background: colors.white,\n \"heading-background\": colors[\"neutral-90\"],\n \"text-color\": colors[\"neutral-10\"],\n },\n button: {\n disabled: colors[\"neutral-80\"],\n disabledFontColor: colors[\"neutral-20\"],\n primary: {\n solid: {\n background: colors[\"pink-40\"],\n hover: colors[\"pink-30\"],\n fontColor: colors.white,\n border: \"transparent\",\n iconColor: colors.white,\n },\n outline: {\n background: colors.white,\n border: colors[\"pink-40\"],\n hover: colors[\"neutral-90\"],\n fontColor: colors[\"pink-40\"],\n iconColor: colors[\"pink-40\"],\n },\n subtle: {\n background: colors.white,\n border: \"transparent\",\n fontColor: colors[\"pink-40\"],\n hover: colors[\"neutral-90\"],\n iconColor: colors[\"pink-40\"],\n },\n underline: {\n background: colors.white,\n border: \"transparent\",\n hover: \"transparent\",\n fontColor: colors.black,\n iconColor: colors[\"pink-40\"],\n underline: colors[\"pink-40\"],\n },\n },\n },\n divider: {\n background: colors[\"neutral-60\"],\n },\n input: {\n \"input-text\": colors.black,\n background: colors.white,\n disabled: colors[\"neutral-80\"],\n disabledFontColor: colors[\"neutral-20\"],\n \"select-inner-border\": colors[\"neutral-30\"],\n \"radio-border\": colors[\"neutral-80\"],\n border: colors[\"neutral-60\"],\n \"border-error\": colors[\"red-40\"],\n focus: {\n outline: colors[\"pink-40\"],\n \"box-shadow\": hexToRGBA(colors[\"pink-40\"], 0.3),\n },\n },\n card: {\n disabled: colors[\"neutral-90\"],\n border: {\n active: colors.white,\n disabled: colors[\"neutral-80\"],\n },\n },\n calendar: {\n background: colors.white,\n \"day-disabled\": colors[\"neutral-40\"],\n hover: colors[\"neutral-90\"],\n secondary: colors[\"neutral-60\"],\n primary: colors[\"pink-40\"],\n \"primary-hover\": colors[\"pink-30\"],\n \"calendar-icon\": colors[\"neutral-20\"],\n focus: {\n outline: colors[\"pink-40\"],\n \"box-shadow\": hexToRGBA(colors[\"pink-40\"], 0.3),\n },\n },\n list: {\n boxShadow: `0 0 0.5rem ${hexToRGBA(colors[\"navy-40\"], 0.1)}`,\n border: colors[\"neutral-80\"],\n item: {\n selected: colors[\"neutral-90\"],\n background: colors[\"neutral-90\"],\n \"text-color\": colors[\"neutral-10\"],\n hover: colors[\"neutral-80\"],\n \"border-color\": colors[\"neutral-80\"],\n focusBorderColor: colors[\"navy-40\"],\n },\n },\n link: {\n color: colors[\"pink-40\"],\n hover: colors[\"pink-30\"],\n },\n loader: {\n \"border-bottom\": \"transparent\",\n \"border-left\": colors[\"pink-40\"],\n \"border-right\": colors[\"pink-40\"],\n \"border-top\": colors[\"pink-40\"],\n },\n table: {\n background: colors[\"neutral-90\"],\n border: colors[\"neutral-70\"],\n \"scrollbar-border\": colors[\"neutral-80\"],\n \"scroll-thumb\": colors[\"pink-40\"],\n \"scrollbar-track-background\": colors[\"neutral-80\"],\n },\n textLabel: {\n color: colors[\"neutral-20\"],\n },\n toolTip: {\n background: colors[\"neutral-10\"],\n \"text-color\": colors.white,\n },\n toast: {\n background: colors[\"cyan-90\"],\n border: colors[\"cyan-50\"],\n },\n notification: {\n indicator: colors[\"blue-40\"],\n success: {\n background: colors[\"green-90\"],\n border: colors[\"green-40\"],\n \"border-left\": colors[\"green-40\"],\n color: colors.black,\n icon: ,\n },\n error: {\n background: colors.white,\n border: \"transparent\",\n \"border-left\": colors[\"red-40\"],\n color: colors.black,\n icon: ,\n },\n warning: {\n background: colors[\"orange-90\"],\n border: colors[\"orange-40\"],\n \"border-left\": colors[\"orange-40\"],\n color: colors.black,\n icon: ,\n },\n\n information: {\n background: colors[\"blue-90\"],\n border: colors[\"blue-40\"],\n \"border-left\": colors[\"blue-40\"],\n color: colors.black,\n icon: ,\n },\n },\n options: {\n background: colors[\"neutral-90\"],\n \"background-odd\": colors.white,\n \"selected-border\": colors[\"pink-40\"],\n },\n\n radio: {\n border: colors[\"neutral-60\"],\n background: colors.white,\n disabled: colors[\"neutral-80\"],\n \"border-checked\": colors[\"pink-40\"],\n \"background-checked\": colors[\"pink-40\"],\n hover: colors[\"pink-30\"],\n },\n select: {\n background: colors.white,\n \"select-inner-border\": colors[\"neutral-30\"],\n \"radio-border\": colors[\"neutral-80\"],\n \"background-checked\": colors[\"pink-40\"],\n \"border-checked\": colors[\"pink-40\"],\n },\n supportingMessage: {\n success: {\n background: colors[\"green-40\"],\n color: colors[\"green-40\"],\n },\n error: {\n background: colors[\"red-40\"],\n color: colors[\"red-40\"],\n },\n information: {\n background: colors[\"neutral-10\"],\n color: colors[\"neutral-10\"],\n },\n },\n\n steps: {\n active: colors[\"navy-40\"],\n inactive: colors[\"blue-90\"],\n },\n\n tabs: {\n background: colors.white,\n text: colors[\"neutral-20\"],\n border: colors[\"neutral-80\"],\n },\n\n checkbox: {\n border: colors[\"neutral-80\"],\n \"border-color\": colors[\"pink-40\"],\n \"border-hover\": colors[\"pink-30\"],\n \"disabled-check\": colors[\"neutral-20\"],\n },\n toggle: {\n border: colors[\"neutral-80\"],\n \"slider-active\": colors[\"pink-40\"],\n \"slider-inactive\": colors[\"neutral-30\"],\n },\n },\n};\n","// Icons\nimport { InfoSolid, DoNotDisturb, Check } from \"@/Icons\";\n\n// Helpers\nimport { hexToRGBA } from \"@/utils\";\n\nconst colors = {\n \"blue-40\": \"#1a0dab\",\n \"blue-60\": \"#5B5BE3\",\n \"blue-90\": \"#EAEAF7\",\n \"cyan-20\": \"#0E769C\",\n \"cyan-30\": \"#27aedf\",\n \"cyan-40\": \"#45cdff\",\n \"cyan-50\": \"#6AD7FF\",\n \"cyan-90\": \"#ECFAFF\",\n \"green-90\": \"#E0FFE0\",\n \"green-60\": \"#1DD21D\",\n \"green-40\": \"#008000\",\n \"navy-40\": \"#1b073a\",\n \"orange-90\": \"#FFF4EC\",\n \"orange-40\": \"#eb8734\",\n \"pink-30\": \"#b3096c\",\n \"pink-40\": \"#d40b81\",\n \"purple-60\": \"#c32bda\",\n \"purple-50\": \"#9814ac\",\n \"purple-40\": \"#6d087c\",\n \"purple-30\": \"#570463\",\n \"red-90\": \"#FFEAE7\",\n \"red-40\": \"#de3618\",\n \"neutral-80\": \"#ebebeb\",\n \"neutral-90\": \"#f8f8f8\",\n \"neutral-60\": \"#d6d6d6\",\n \"neutral-70\": \"#e3e3e3\",\n \"neutral-40\": \"#c2c2c2\",\n \"neutral-30\": \"#909090\",\n \"neutral-50\": \"#ccc\",\n \"neutral-10\": \"#222\",\n \"neutral-20\": \"#524f4f\",\n white: \"#fff\",\n black: \"#000\",\n};\n\nexport const idmTheme = {\n idm: {\n colors: {\n primary: colors[\"navy-40\"],\n secondary: colors[\"cyan-40\"],\n \"secondary-hover\": colors[\"cyan-40\"],\n accent: colors[\"pink-40\"],\n \"accent-hover\": colors[\"pink-30\"],\n error: colors[\"red-40\"],\n warning: colors[\"orange-40\"],\n success: colors[\"green-40\"],\n information: colors[\"neutral-10\"],\n \"body-background\": colors[\"neutral-10\"],\n \"link-color\": colors[\"blue-40\"],\n \"blue-40\": colors[\"blue-40\"],\n \"cyan-30\": colors[\"cyan-30\"],\n \"cyan-40\": colors[\"cyan-40\"],\n \"green-40\": colors[\"green-40\"],\n \"navy-40\": colors[\"navy-40\"],\n \"orange-40\": colors[\"orange-40\"],\n \"pink-30\": colors[\"pink-30\"],\n \"pink-40\": colors[\"pink-40\"],\n \"red-40\": colors[\"red-40\"],\n \"neutral-80\": colors[\"neutral-80\"],\n \"neutral-90\": colors[\"neutral-90\"],\n \"neutral-60\": colors[\"neutral-60\"],\n \"neutral-70\": colors[\"neutral-70\"],\n \"neutral-40\": colors[\"neutral-40\"],\n \"neutral-30\": colors[\"neutral-30\"],\n \"neutral-50\": colors[\"neutral-50\"],\n \"neutral-10\": colors[\"neutral-10\"],\n \"neutral-20\": colors[\"neutral-20\"],\n white: \"#fff\",\n black: \"#000\",\n },\n accordion: {\n \"border-color\": colors[\"neutral-40\"],\n background: colors.white,\n \"heading-background\": colors[\"neutral-90\"],\n \"text-color\": colors[\"neutral-10\"],\n },\n button: {\n disabled: colors[\"neutral-80\"],\n disabledFontColor: colors[\"neutral-30\"],\n primary: {\n solid: {\n background: colors[\"navy-40\"],\n hover: colors[\"navy-30\"],\n fontColor: colors.white,\n border: \"transparent\",\n iconColor: colors.white,\n },\n outline: {\n background: colors.white,\n border: colors[\"navy-40\"],\n hover: colors[\"neutral-90\"],\n fontColor: colors[\"navy-40\"],\n iconColor: colors[\"navy-40\"],\n },\n subtle: {\n background: colors.white,\n border: \"transparent\",\n fontColor: colors[\"navy-40\"],\n hover: colors[\"neutral-90\"],\n iconColor: colors[\"navy-40\"],\n },\n underline: {\n background: colors.white,\n border: \"transparent\",\n hover: \"transparent\",\n fontColor: colors.black,\n iconColor: colors[\"navy-40\"],\n underline: colors[\"navy-40\"],\n },\n },\n },\n divider: {\n background: colors[\"neutral-60\"],\n },\n input: {\n disabled: colors[\"neutral-80\"],\n disabledFontColor: colors[\"neutral-20\"],\n \"input-text\": colors.black,\n background: colors[\"neutral-80\"],\n border: colors[\"neutral-60\"],\n \"border-error\": colors[\"red-40\"],\n \"select-inner-border\": colors[\"neutral-30\"],\n \"radio-border\": colors[\"neutral-80\"],\n focus: {\n outline: colors[\"navy-40\"],\n \"box-shadow\": hexToRGBA(colors[\"navy-40\"], 0.3),\n },\n },\n calendar: {\n background: colors.white,\n \"day-disabled\": colors[\"neutral-70\"],\n hover: colors[\"neutral-90\"],\n secondary: colors[\"neutral-60\"],\n primary: colors[\"navy-40\"],\n \"primary-hover\": colors[\"navy-30\"],\n \"calendar-icon\": colors[\"neutral-20\"],\n focus: {\n outline: colors[\"navy-40\"],\n \"box-shadow\": hexToRGBA(colors[\"navy-40\"], 0.3),\n },\n },\n card: {\n disabled: colors[\"neutral-90\"],\n },\n list: {\n boxShadow: `0 0 0.5rem ${hexToRGBA(colors[\"navy-40\"], 0.1)}`,\n border: colors[\"neutral-80\"],\n item: {\n selected: colors[\"neutral-90\"],\n background: colors[\"neutral-90\"],\n \"text-color\": colors[\"neutral-10\"],\n hover: colors[\"neutral-80\"],\n \"border-color\": colors[\"neutral-80\"],\n focusBorderColor: colors[\"navy-40\"],\n },\n },\n\n link: {\n color: colors[\"navy-40\"],\n hover: colors[\"navy-30\"],\n },\n\n loader: {\n \"border-bottom\": colors[\"pink-40\"],\n \"border-left\": colors[\"purple-40\"],\n \"border-right\": colors[\"cyan-30\"],\n \"border-top\": colors.black,\n },\n table: {\n background: colors[\"neutral-90\"],\n border: colors[\"neutral-80\"],\n \"scrollbar-border\": colors[\"neutral-80\"],\n \"scroll-thumb\": colors[\"pink-40\"],\n \"scrollbar-track-background\": colors[\"neutral-80\"],\n },\n toolTip: {\n background: colors[\"neutral-10\"],\n \"text-color\": colors.white,\n },\n toast: {\n background: colors[\"cyan-90\"],\n border: colors[\"cyan-50\"],\n },\n notification: {\n success: {\n background: colors.white,\n border: colors[\"neutral-60\"],\n \"border-left\": colors[\"green-60\"],\n color: colors.black,\n icon: ,\n },\n error: {\n background: colors.white,\n border: colors[\"neutral-60\"],\n \"border-left\": colors[\"red-40\"],\n color: colors[\"red-40\"],\n icon: ,\n },\n information: {\n background: colors.white,\n border: colors[\"neutral-60\"],\n \"border-left\": colors[\"cyan-30\"],\n color: colors.black,\n icon: ,\n },\n\n indicator: colors[\"blue-40\"],\n },\n\n options: {\n background: colors[\"neutral-90\"],\n \"background-odd\": colors.white,\n \"selected-border\": colors[\"pink-40\"],\n },\n\n radio: {\n border: colors[\"neutral-60\"],\n background: colors.white,\n disabled: colors[\"neutral-80\"],\n \"border-checked\": colors[\"pink-40\"],\n \"background-checked\": colors[\"pink-40\"],\n hover: colors[\"pink-30\"],\n },\n select: {\n background: colors.white,\n \"select-inner-border\": colors[\"neutral-30\"],\n \"radio-border\": colors[\"neutral-80\"],\n \"background-checked\": colors[\"pink-40\"],\n \"border-checked\": colors[\"pink-40\"],\n },\n\n steps: {\n active: colors[\"navy-40\"],\n inactive: colors[\"blue-90\"],\n },\n\n tabs: {\n background: colors.white,\n text: colors[\"neutral-10\"],\n border: colors[\"neutral-90\"],\n },\n toggle: {\n border: colors[\"neutral-80\"],\n \"slider-active\": colors[\"navy-40\"],\n \"slider-inactive\": colors[\"neutral-30\"],\n },\n },\n};\n","import { hexToRGBA } from \"@/utils\";\n\nconst colors = {\n \"blue-40\": \"#1a0dab\",\n \"cyan-30\": \"#27aedf\",\n \"cyan-40\": \"#45cdff\",\n \"cyan-50\": \"#6AD7FF\",\n \"cyan-90\": \"#ECFAFF\",\n \"green-40\": \"#008000\",\n \"navy-40\": \"#1b073a\",\n \"navy-30\": \"#13042b\",\n \"orange-40\": \"#eb8734\",\n \"pink-30\": \"#b3096c\",\n \"pink-40\": \"#d40b81\",\n \"red-40\": \"#de3618\",\n \"neutral-80\": \"#ebebeb\",\n \"neutral-90\": \"#f8f8f8\",\n \"neutral-60\": \"#d6d6d6\",\n \"neutral-70\": \"#e3e3e3\",\n \"neutral-40\": \"#c2c2c2\",\n \"neutral-30\": \"#909090\",\n \"neutral-50\": \"#ccc\",\n \"neutral-10\": \"#222\",\n \"neutral-20\": \"#524f4f\",\n white: \"#fff\",\n black: \"#000\",\n};\n\nexport const onlineApplication = {\n \"online-application\": {\n colors: {\n primary: colors[\"navy-40\"],\n secondary: colors[\"cyan-40\"],\n \"secondary-hover\": colors[\"cyan-40\"],\n accent: colors[\"pink-40\"],\n \"accent-hover\": colors[\"pink-30\"],\n error: colors[\"red-40\"],\n warning: colors[\"orange-40\"],\n success: colors[\"green-40\"],\n \"body-background\": colors[\"neutral-10\"],\n \"link-color\": colors[\"blue-40\"],\n \"blue-40\": colors[\"blue-40\"],\n \"cyan-30\": colors[\"cyan-30\"],\n \"cyan-40\": colors[\"cyan-40\"],\n \"green-40\": colors[\"green-40\"],\n \"navy-40\": colors[\"navy-40\"],\n \"navy-30\": colors[\"navy-30\"],\n \"orange-40\": colors[\"orange-40\"],\n \"pink-30\": colors[\"pink-30\"],\n \"pink-40\": colors[\"pink-40\"],\n \"red-40\": colors[\"red-40\"],\n \"neutral-80\": colors[\"neutral-80\"],\n \"neutral-90\": colors[\"neutral-90\"],\n \"neutral-60\": colors[\"neutral-60\"],\n \"neutral-70\": colors[\"neutral-70\"],\n \"neutral-40\": colors[\"neutral-40\"],\n \"neutral-30\": colors[\"neutral-30\"],\n \"neutral-50\": colors[\"neutral-50\"],\n \"neutral-10\": colors[\"neutral-10\"],\n \"neutral-20\": colors[\"neutral-20\"],\n white: \"#fff\",\n black: \"#000\",\n },\n accordion: {\n \"border-color\": colors[\"neutral-40\"],\n background: colors.white,\n \"heading-background\": colors[\"neutral-90\"],\n \"text-color\": colors[\"neutral-10\"],\n },\n button: {\n disabled: colors[\"neutral-80\"],\n disabledFontColor: colors[\"neutral-20\"],\n primary: {\n solid: {\n background: colors[\"navy-40\"],\n hover: colors[\"navy-30\"],\n fontColor: colors.white,\n border: \"transparent\",\n iconColor: colors.white,\n },\n outline: {\n background: colors.white,\n border: colors[\"navy-40\"],\n hover: colors[\"neutral-90\"],\n fontColor: colors[\"navy-40\"],\n iconColor: colors[\"navy-40\"],\n },\n subtle: {\n background: colors.white,\n border: \"transparent\",\n fontColor: colors[\"navy-40\"],\n hover: colors[\"neutral-90\"],\n iconColor: colors[\"navy-40\"],\n },\n underline: {\n background: colors.white,\n border: \"transparent\",\n hover: \"transparent\",\n fontColor: colors.black,\n iconColor: colors[\"navy-40\"],\n underline: colors[\"navy-40\"],\n },\n },\n },\n divider: {\n background: colors[\"neutral-60\"],\n },\n input: {\n \"input-text\": colors.black,\n background: colors.white,\n disabled: colors[\"neutral-80\"],\n disabledFontColor: colors[\"neutral-20\"],\n \"select-inner-border\": colors[\"neutral-30\"],\n \"radio-border\": colors[\"neutral-80\"],\n border: colors[\"neutral-60\"],\n \"border-error\": colors[\"red-40\"],\n focus: {\n outline: colors[\"navy-40\"],\n \"box-shadow\": hexToRGBA(colors[\"navy-40\"], 0.3),\n },\n },\n calendar: {\n background: colors.white,\n \"day-disabled\": colors[\"neutral-70\"],\n hover: colors[\"neutral-90\"],\n secondary: colors[\"neutral-60\"],\n primary: colors[\"navy-40\"],\n \"primary-hover\": colors[\"navy-30\"],\n \"calendar-icon\": colors[\"neutral-20\"],\n focus: {\n outline: colors[\"navy-40\"],\n \"box-shadow\": hexToRGBA(colors[\"navy-40\"], 0.3),\n },\n },\n card: {\n disabled: colors[\"neutral-90\"],\n },\n list: {\n boxShadow: `0 0 0.5rem ${hexToRGBA(colors[\"navy-40\"], 0.1)}`,\n border: colors[\"neutral-80\"],\n item: {\n selected: colors[\"neutral-90\"],\n background: colors[\"neutral-90\"],\n \"text-color\": colors[\"neutral-10\"],\n hover: colors[\"neutral-80\"],\n \"border-color\": colors[\"neutral-80\"],\n focusBorderColor: colors[\"navy-40\"],\n },\n },\n\n link: {\n color: colors[\"pink-40\"],\n hover: colors[\"pink-30\"],\n },\n\n loader: {\n \"border-bottom\": \"transparent\",\n \"border-left\": colors[\"pink-40\"],\n \"border-right\": colors[\"pink-40\"],\n \"border-top\": colors[\"pink-40\"],\n },\n\n toolTip: {\n background: colors[\"neutral-10\"],\n \"text-color\": colors.white,\n },\n toast: {\n background: colors[\"cyan-90\"],\n border: colors[\"cyan-50\"],\n },\n notification: {\n indicator: colors[\"blue-40\"],\n },\n options: {\n background: colors[\"neutral-90\"],\n \"background-odd\": colors.white,\n \"selected-border\": colors[\"pink-40\"],\n },\n\n radio: {\n border: colors[\"neutral-60\"],\n background: colors.white,\n \"border-checked\": colors[\"pink-40\"],\n \"background-checked\": colors[\"pink-40\"],\n hover: colors[\"pink-30\"],\n },\n select: {\n background: colors.white,\n \"select-inner-border\": colors[\"neutral-30\"],\n \"radio-border\": colors[\"neutral-80\"],\n \"background-checked\": colors[\"pink-40\"],\n \"border-checked\": colors[\"pink-40\"],\n },\n\n steps: {\n active: colors[\"navy-40\"],\n inactive: colors[\"blue-90\"],\n },\n\n tabs: {\n background: colors.white,\n text: colors[\"neutral-10\"],\n border: colors[\"neutral-90\"],\n },\n table: {\n background: colors[\"neutral-90\"],\n border: colors[\"neutral-80\"],\n \"scrollbar-border\": colors[\"neutral-80\"],\n \"scroll-thumb\": colors[\"pink-40\"],\n \"scrollbar-track-background\": colors[\"neutral-80\"],\n },\n },\n};\n","import { ReactElement, ReactNode } from \"react\";\n\nimport { ThemeProvider } from \"styled-components\";\nimport { octopusOnlineTheme } from \"./octopus-online\";\nimport { idmTheme } from \"./idm\";\nimport { onlineApplication } from \"./online-application\";\nimport { GlobalStyle } from \"@/utils/styles/styles\";\n\nexport const platformThemes = {\n ...octopusOnlineTheme,\n ...onlineApplication,\n ...idmTheme,\n} as const;\n\nexport const Theme = ({\n children,\n}: {\n children: ReactElement | ReactElement[] | ReactNode | string | number;\n}) => (\n \n \n {children}\n \n);\n","import classNames from \"classnames\";\n\n// Types\nimport type { LoaderProps } from \"./Loader.types\";\n\n// Styles\nimport { Preloader } from \"./Loader.styles\";\n\n// Theme Provider\nimport { Theme } from \"@/theme\";\n\nexport const Loader = ({\n className,\n size = \"md\",\n customSize,\n cs,\n platform = \"octopus-online\",\n buttonVariant = null,\n ...rest\n}: LoaderProps) => {\n const loaderClasses = classNames(\"ds-loader\", className);\n\n return (\n \n \n \n );\n};\n","import styled from \"styled-components\";\n\nexport const Wrapper = styled.span`\n position: absolute;\n height: 0;\n width: 0;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n clip-path: inset(50%);\n margin: -1px;\n padding: 0;\n`;\n","// Styles\nimport { Wrapper } from \"./VisuallyHidden.styles\";\n\nexport const VisuallyHidden = ({ children }: any) => (\n {children}\n);\n","import styled, { css } from \"styled-components\";\n\nconst buttonSize = {\n sm: \"padding: 0.5rem;\",\n md: \"padding: 0.75rem 1rem;\",\n lg: \"padding: 1rem;\",\n};\n\nconst fontSize = {\n sm: \"0.875rem\",\n md: \"1rem\",\n lg: \"1.25rem\",\n};\n\ntype StyledButtonProps = {\n $color: string;\n $cs: any;\n $customWidth?: string;\n $disabled?: boolean;\n $hover: boolean;\n $isLoading: boolean;\n $platform: string;\n $size: string;\n $variant: string;\n $isLabelString: boolean;\n $initMinWidth: boolean;\n};\n\nexport const ButtonStyle = styled.button`\n align-items: center;\n align-self: flex-start;\n background-color: ${({ theme, $platform, $color, $variant }) =>\n theme[$platform].button[$color][$variant].background};\n border-radius: 0.4rem;\n border: ${({ $variant, theme, $platform, $color }) =>\n $variant !== \"solid\" && $variant !== \"underline\"\n ? `1px solid ${theme[$platform].button[$color][$variant].border}`\n : \"none\"};\n color: ${({ theme, $platform, $color, $variant }) =>\n theme[$platform].button[$color][$variant].fontColor};\n cursor: pointer;\n display: flex;\n font-size: ${({ $size }) => fontSize[$size as keyof typeof fontSize]};\n justify-content: center;\n ${({ $customWidth }) => $customWidth && `width: ${$customWidth}`};\n min-width: ${({ $initMinWidth }) =>\n $initMinWidth ? \"initial\" : \"fit-content\"};\n ${({ $size }) => $size && buttonSize[$size as keyof typeof buttonSize]};\n position: relative;\n\n ${btnLoadingStyle}\n ${({ $hover, $platform, $color, $variant, theme }) =>\n $hover &&\n `\n &:hover {\n background-color: ${theme[$platform].button[$color][$variant].hover};\n }\n `}\n\n &:disabled {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].button.disabled};\n border: transparent;\n color: ${({ theme, $platform }) =>\n theme[$platform].button.disabledFontColor ?? \"transparent\"};\n cursor: not-allowed;\n }\n\n &:focus {\n box-shadow: ${({ $disabled, theme, $platform }) =>\n $disabled\n ? \"none\"\n : `0 0 0 0.2rem ${theme[$platform].input.focus[\"box-shadow\"]}`};\n outline: transparent;\n transition: box-shadow 0.25s ease-in-out;\n }\n\n &.show-icon {\n .icon {\n &--left {\n order: 1;\n }\n\n &--right {\n order: 2;\n }\n }\n }\n\n .ds-button__icon {\n &--left {\n margin-left: 0.5rem;\n order: 2;\n }\n\n &--right {\n margin-right: 0.5rem;\n order: 1;\n }\n }\n\n .ds-button__arrow-right {\n order: 2;\n }\n\n &[data-platform=\"octopus-ventures\"] {\n border-radius: 0.5rem;\n padding: 0.75rem 2.125rem;\n }\n\n ${({ $cs }) => $cs}\n`;\n\nexport const UnderlineButton = styled(ButtonStyle)`\n border-bottom: 2px solid\n ${({ theme, $platform, $variant, $color }) =>\n theme[$platform].button[$color][$variant].underline ?? \"transparent\"};\n border-radius: 0;\n height: 1.5rem;\n min-width: auto;\n padding: 0;\n\n &:disabled {\n background-color: transparent;\n border-bottom: 0;\n }\n`;\n\nconst NonUnderlineStyles = styled(ButtonStyle)`\n border-radius: 0.25rem;\n height: ${({ $isLabelString }) => !$isLabelString && \"1.5rem\"};\n ${({ $isLabelString, $size }) =>\n !$isLabelString\n ? \"width: 1.5rem; padding: 0\"\n : buttonSize[$size as keyof typeof buttonSize]}\n`;\n\n/* stylelint-disable no-empty-source*/\nexport const SolidButton = styled(NonUnderlineStyles)``;\n\n/* stylelint-disable no-empty-source*/\nconst NonSolidButtonStyles = styled(NonUnderlineStyles)``;\n\n/* stylelint-disable no-empty-source*/\nexport const OutlineButton = styled(NonSolidButtonStyles)``;\n\nexport const SubtleButton = styled(NonSolidButtonStyles)`\n padding: 1rem;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:disabled {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].colors.white ?? \"white\"};\n\n &:hover {\n text-decoration: none;\n }\n }\n`;\n\nexport const Label = styled.span<{\n $iconPosition?: string;\n $isLabelString: boolean;\n}>`\n display: flex;\n ${({ $iconPosition }) => $iconPosition && `margin-${$iconPosition}`}: 0.5rem;\n\n order: ${({ $iconPosition }) => ($iconPosition === \"left\" ? 2 : 1)};\n\n svg {\n width: ${({ $isLabelString }) => (!$isLabelString ? \"1rem\" : \"auto\")};\n height: ${({ $isLabelString }) => (!$isLabelString ? \"1rem\" : \"auto\")};\n }\n`;\n\nfunction btnLoadingStyle({\n $isLoading,\n theme,\n $platform,\n $color,\n $variant,\n}: {\n $isLoading: boolean;\n theme: any;\n $platform: string;\n $color: string;\n $variant: string;\n}) {\n const isLoadingExists = Boolean($isLoading);\n\n if (!isLoadingExists) return;\n return css`\n cursor: default;\n outline: none;\n overflow: hidden;\n\n svg {\n margin-left: 0;\n color: ${theme[$platform].button[$color][$variant].iconColor};\n }\n `;\n}\n","import { forwardRef, MouseEvent, useRef } from \"react\";\nimport { mergeRefs } from \"react-merge-refs\";\nimport classNames from \"classnames\";\n\n// Components\nimport { Loader } from \"@/components/Other/Loader/Loader\";\nimport { VisuallyHidden } from \"@/components/Shared/VisuallyHidden/VisuallyHidden\";\n\n// Icons\nimport { ArrowRight } from \"@/Icons\";\n\n// Types\nimport type { ButtonProps } from \"./Button.types\";\n\n// Styles\nimport {\n Label,\n OutlineButton,\n SolidButton,\n SubtleButton,\n UnderlineButton,\n} from \"./Button.styles\";\n\n// Theme Provider\nimport { Theme } from \"@/theme\";\n\nexport const Button = forwardRef(\n (props, ref) => {\n const {\n color = \"primary\",\n className,\n cs,\n customWidth,\n disabled = false,\n hover = true,\n icon,\n iconLabel,\n iconPosition = \"right\",\n initMinWidth = false,\n isLoading = false,\n label,\n onClick: handleClick,\n platform = \"octopus-online\",\n size = \"md\",\n type = \"button\",\n variant = \"solid\",\n ...rest\n } = props;\n\n const buttonRef = useRef();\n const combinedRef = mergeRefs([buttonRef, ref]);\n\n const platformStyles = classNames(\n className,\n \"ds-button\",\n icon && !isLoading && `show-icon show-icon--${iconPosition}`\n );\n\n const onClick = (e: MouseEvent) => {\n e.stopPropagation();\n handleClick && !isLoading && handleClick(e);\n };\n\n const buttonVariants = {\n outline: OutlineButton,\n solid: SolidButton,\n subtle: SubtleButton,\n underline: UnderlineButton,\n };\n\n const isUnderlineBtn = variant === \"underline\";\n const isLabelString =\n typeof label === \"string\" || typeof label === \"number\";\n\n if (!isLabelString && !iconLabel)\n throw new Error(\n \"Button: please provide a iconLabel prop when using an icon as a label\"\n );\n\n const Wrapper = buttonVariants[variant];\n\n return (\n \n \n {!isLoading && !isUnderlineBtn && icon && (\n \n {icon}\n \n )}\n\n {isLoading && !disabled ? (\n <>\n \n {isLoading ? \"is Loading\" : \"\"}\n \n ) : (\n \n {label}\n {!isLabelString && {iconLabel}}\n \n )}\n {isUnderlineBtn && }\n \n \n );\n }\n);\n\nButton.displayName = \"Button\";\n","function o(f){return r=>{f.forEach(n=>{typeof n==\"function\"?n(r):n!=null&&(n.current=r)})}}export{o as mergeRefs};\n//# sourceMappingURL=index.mjs.map\n","import styled, { css } from \"styled-components\";\n\ntype TLinkStyleProps = {\n $disabled: boolean;\n $isInline: boolean;\n $startIcon: any;\n $endIcon: any;\n $platform: string;\n};\n\nconst linkColor = ({\n $disabled = false,\n $isInline = false,\n $platform = \"octopus-online\",\n theme,\n}: {\n $disabled: boolean;\n $isInline: boolean;\n $platform: string;\n theme: any;\n}) => {\n const activeLinkColour =\n $isInline && theme\n ? theme[$platform].colors[\"blue-40\"]\n : theme[$platform].colors.accent;\n return $disabled ? theme[$platform].colors[\"neutral-10\"] : activeLinkColour;\n};\n\nconst linkIconStyle = ({\n $startIcon,\n $endIcon,\n}: Pick) => {\n const iconPropsExist = !!$startIcon || !!$endIcon;\n const startIconExists = Boolean($startIcon);\n const marginOptions = startIconExists ? \"margin-right\" : \"margin-left\";\n\n if (!iconPropsExist) return;\n\n return css`\n align-items: center;\n display: flex;\n\n svg {\n ${marginOptions}: 0.5rem;\n }\n `;\n};\n\nexport const Wrapper = styled.a`\n color: ${linkColor};\n cursor: pointer;\n text-decoration: none;\n\n ${linkIconStyle}\n\n &:hover {\n text-decoration: underline;\n }\n\n ${({ $disabled }) =>\n $disabled &&\n css`\n cursor: not-allowed;\n\n &:hover {\n text-decoration: none;\n }\n `}\n`;\n","import { MouseEvent } from \"react\";\nimport classNames from \"classnames\";\n\n// Types\nimport type { LinkProps } from \"./Link.types\";\n\n// Styles\nimport { Wrapper } from \"./Link.styles\";\nimport { Theme } from \"@/theme\";\n\nexport const Link = ({\n className,\n children,\n component,\n isInline = false,\n onLinkClick,\n stopPropagation = false,\n platform = \"octopus-online\",\n ...rest\n}: LinkProps) => {\n const onClick = (e: MouseEvent) => {\n if (typeof onLinkClick === \"function\" && onLinkClick) onLinkClick();\n stopPropagation && e.stopPropagation();\n };\n\n const attributes = {\n onClick,\n ...rest,\n ...(rest.target === \"_blank\" && { rel: \"noreferrer noopener\" }),\n };\n const { startIcon, endIcon } = rest;\n const showStartIcon: boolean = startIcon !== null && startIcon;\n const showEndIcon: boolean = endIcon !== null && endIcon;\n\n const linkClasses = classNames(\"ds-link\", className);\n\n return (\n \n \n {showStartIcon}\n {children}\n {showEndIcon}\n \n \n );\n};\n","import styled, { css } from \"styled-components\";\n\n// Colors\nimport { neutral } from \"@/utils/styles/colors\";\n\n// Helpers\nimport { ANIMATION_DURATION } from \"@/utils\";\n\nconst alignPlacement = {\n left: \"flex-start\",\n center: \"center\",\n};\n\nconst BannerStyles = css<{ $status: string; $platform: string }>`\n background-color: ${neutral[\"neutral-100\"]};\n border: none;\n border-left: ${({ $status, $platform, theme }) =>\n `0.5rem solid ${theme[$platform].notification[$status][\"border-left\"]}`};\n`;\n\nconst SmallStyles = css`\n flex-direction: column;\n max-width: 100%;\n padding: 1rem 3.5rem;\n width: max-content;\n\n .ds-notification-icon {\n left: 1rem;\n position: absolute;\n top: 1rem;\n }\n\n .ds-notification-text {\n flex-direction: column;\n }\n\n .ds-notification-heading {\n margin: 0 0 0.5rem;\n }\n\n .ds-notification-cta {\n margin: 0.5rem 0 0;\n max-width: max-content;\n }\n\n .ds-notification-close {\n margin-right: 0;\n position: absolute;\n right: 1rem;\n top: 1rem;\n }\n`;\n\nconst slideLeftStyles = css<{ $status: string; $platform: string }>`\n border-left: none;\n border-right: ${({ $status, $platform, theme }) =>\n `0.5rem solid ${theme[$platform].notification[$status][\"border-left\"]}`};\n\n .ds-notification-icon {\n order: 2;\n margin-left: 1rem;\n margin-right: 0;\n }\n\n .ds-notification-close {\n order: 1;\n margin-left: 1rem;\n margin-right: 0;\n }\n\n .ds-notification-text {\n margin-left: 1rem;\n }\n`;\n\nconst animationStyles = css`\n &.slide-left {\n position: fixed;\n left: 0;\n top: 6rem;\n transform: translateX(-100%);\n transition: transform 0.3s ease-in-out;\n width: 28.25rem;\n z-index: 6;\n\n &.ds-notification-show {\n transform: translateX(0);\n transition: transform 0.3s ease-in-out;\n }\n }\n\n &.slide-right {\n position: fixed;\n right: 0;\n top: 6rem;\n transform: translateX(100%);\n transition: transform 0.3s ease-in-out;\n width: 28.25rem;\n z-index: 6;\n\n &.ds-notification-show {\n transform: translateX(0);\n transition: transform 0.3s ease-in-out;\n }\n }\n\n &.fade-in-out {\n opacity: 0;\n transition: opacity 0.3s ease-in-out;\n\n &.ds-notification-show {\n opacity: 1;\n transition: opacity 0.3s ease-in-out;\n }\n\n &.ds-notification-hide {\n opacity: 0;\n transition: opacity 0.3s ease-in-out;\n }\n }\n`;\n\nexport const StyledNotification = styled.div<{\n $align: string;\n $cs: any;\n $isHeightGreater: boolean;\n $platform: string;\n $size: string;\n $status: string;\n $type: string;\n}>`\n background-color: ${({ $status, $platform, theme }) =>\n theme[$platform].notification[$status].background};\n border: ${({ $status, $platform, theme }) =>\n `1px solid ${theme[$platform].notification[$status].border}`};\n border-left: ${({ $status, $platform, theme }) =>\n `0.5rem solid ${theme[$platform].notification[$status][\"border-left\"]}`};\n border-radius: 0.25rem;\n box-shadow: 0 0 1rem rgba(27, 7, 58, 0.1);\n box-sizing: border-box;\n display: flex;\n font-weight: 500;\n padding: 1rem 0 1rem 1rem;\n pointer-events: auto;\n position: relative;\n transition: top ${ANIMATION_DURATION.formatCss} ease-in-out;\n width: 100%;\n\n &.slide-left {\n ${slideLeftStyles};\n }\n\n .ds-notification-content {\n display: flex;\n place-content: ${({ $align }) =>\n alignPlacement[$align as keyof typeof alignPlacement]};\n width: 100%;\n\n .ds-notification-icon {\n align-self: ${({ $isHeightGreater }) =>\n $isHeightGreater ? \"flex-start\" : \"center\"};\n display: inherit;\n margin-right: 1rem;\n min-width: 1.5rem;\n width: 1.5rem;\n }\n\n .ds-notification-text {\n color: ${({ $status, $platform, theme }) =>\n theme[$platform].notification[$status].color};\n display: flex;\n flex-wrap: wrap;\n margin: 0;\n }\n }\n\n .ds-notification-cta {\n margin-right: 2rem;\n }\n\n ${({ $type }) => $type === \"banner\" && BannerStyles};\n ${({ $size }) => $size === \"small\" && SmallStyles};\n\n ${({ $cs }) => $cs};\n\n ${animationStyles};\n`;\n\nexport const CloseIconStyles = styled.button<{\n $isHeightGreater?: any;\n}>`\n align-self: ${({ $isHeightGreater }) =>\n $isHeightGreater ? \"flex-start\" : \"center\"};\n align-items: ${({ $isHeightGreater }) =>\n $isHeightGreater ? \"flex-start\" : \"center\"};\n background-color: transparent;\n border: none;\n cursor: pointer;\n display: flex;\n height: 1.5rem;\n margin-right: 1.125rem;\n`;\n","import {\n KeyboardEvent as ReactKeyBoardEvent,\n SyntheticEvent,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\n\n// Components\nimport { Button } from \"@/components/Inputs/Button/Button\";\nimport { Link } from \"@/components/Navigation/Link/Link\";\nimport { VisuallyHidden } from \"@/components/Shared/VisuallyHidden/VisuallyHidden\";\n\n// Icons\nimport { AlertCircle as InformationIcon, Close as CloseIcon } from \"@/Icons\";\n\n// Types\nimport type { NotificationProps } from \"./Notification.types\";\n\nimport { CloseIconStyles, StyledNotification } from \"./Notification.styles\";\n\n// Theme Provider\nimport { platformThemes, Theme } from \"@/theme\";\n\nconst defaultHeight = 64;\n\nexport const Notification = ({\n action,\n align = \"left\",\n className,\n closable = false,\n cs,\n showDefaultIcon = false,\n message,\n type = \"inline\",\n size = \"large\",\n status = \"information\",\n platform = \"octopus-online\",\n animation = \"slide-right\",\n showNotification,\n onClose,\n autoHideDuration,\n ...rest\n}: NotificationProps) => {\n const [isHeightGreater, setIsHeightGreater] = useState(false);\n\n const messageId = useId();\n\n const textBoxRef = useRef(null);\n const notificationWrapperRef = useRef(null);\n\n const notificationClasses = classNames(\n \"ds-notification\",\n className,\n showNotification ? \"ds-notification-show\" : \"ds-notification-hide\",\n animation === \"fade\"\n ? \"fade-in-out\"\n : animation === \"slide-right\"\n ? \"slide-right\"\n : \"\"\n );\n\n const handleOnEscKey = useCallback(\n ({ code }: KeyboardEvent) => {\n if (showNotification && closable && code === \"Escape\") {\n onClose?.();\n }\n },\n [closable, showNotification, onClose]\n );\n\n const handleCloseOnEnter = useCallback(\n ({ key }: ReactKeyBoardEvent) => {\n if (key === \"Enter\") {\n onClose?.();\n }\n },\n [onClose]\n );\n\n useEffect(() => {\n document.addEventListener(\"keydown\", handleOnEscKey);\n return () => document.removeEventListener(\"keydown\", handleOnEscKey);\n }, [showNotification, closable, handleOnEscKey]);\n\n const hideBanner = (e: SyntheticEvent) => {\n e.stopPropagation();\n onClose?.();\n };\n\n const renderAction = () =>\n size === \"small\" ? (\n \n ) : (\n \n {action.text}\n \n );\n\n const NotificationIcon = showDefaultIcon ? (\n \n ) : (\n platformThemes[platform].notification[status].icon\n );\n\n useEffect(() => {\n if (notificationWrapperRef.current?.clientHeight) {\n setIsHeightGreater(\n notificationWrapperRef.current.clientHeight > defaultHeight\n );\n }\n }, [notificationWrapperRef.current?.clientHeight]);\n\n useEffect(() => {\n if (showNotification && autoHideDuration) {\n const timer = setTimeout(() => {\n onClose?.();\n }, autoHideDuration);\n return () => clearTimeout(timer);\n }\n }, [showNotification, autoHideDuration, onClose]);\n\n return (\n \n \n
\n \n {NotificationIcon}\n \n\n
\n {message}\n
\n\n {action && renderAction()}\n
\n {closable && (\n \n close notification\n \n \n )}\n \n
\n );\n};\n","import styled, { keyframes } from \"styled-components\";\n\n// Colors\nimport { ANIMATION_DURATION } from \"@/utils\";\n\nconst TRANSLATE_VALUES = {\n down: \"translate(0, -100vh)\",\n left: \"translate(-100vw, 0)\",\n right: \"translate(100vw, 0)\",\n up: \"translate(0, 100vh)\",\n} as const;\n\nconst entranceAnimation = (direction: string) => keyframes`\n from {\n transform: ${TRANSLATE_VALUES[direction]};\n }\n`;\n\nexport const StyledToast = styled.div<{\n $direction: string;\n $platform: string;\n}>`\n background: ${({ theme, $platform }) => theme[$platform].toast.background};\n border-left: 0.5rem solid\n ${({ theme, $platform }) => theme[$platform].toast.border};\n animation: ${({ $direction }) => $direction && entranceAnimation($direction)}\n ${ANIMATION_DURATION.formatCss} ease-in-out;\n border-radius: 0.25rem;\n min-height: 3.5rem;\n opacity: 0;\n position: absolute;\n transform: ${({ $direction }) =>\n TRANSLATE_VALUES[$direction as keyof typeof TRANSLATE_VALUES]};\n transition: all ${ANIMATION_DURATION.formatCss} ease-in-out;\n width: max-content;\n z-index: 100;\n\n &.show {\n opacity: 1;\n transform: translate(0);\n }\n`;\n\nexport const StyledToastContent = styled.p<{ $platform: string }>`\n margin: 0;\n padding: 1rem 3.5rem 1rem 1rem;\n`;\n\nexport const CloseButton = styled.button`\n background: none;\n border: none;\n cursor: pointer;\n margin: 0;\n padding: 0;\n position: absolute;\n right: 1.25rem;\n top: 1.25rem;\n`;\n","import styled from \"styled-components\";\n\ntype StyledSupportingMessageProps = {\n $align?: string;\n $iconPosition?: string;\n $platform?: string;\n $showBackground?: boolean;\n $status?: string;\n $cs?: any;\n};\n\nexport const Wrapper = styled.div`\n display: flex;\n align-items: center;\n width: 100%;\n padding: 0.5rem 0;\n border-radius: 0.25rem;\n box-sizing: border-box;\n background-color: ${({ $status, $showBackground, $platform, theme }) =>\n $showBackground\n ? theme[$platform!].supportingMessage[$status!].background\n : \"transparent\"};\n color: ${({ $status, $showBackground, $platform, theme }) =>\n $showBackground\n ? theme[$platform!].colors.white\n : theme[$platform!].supportingMessage[$status!].color};\n\n &.ds-validation-message__content {\n &--start {\n justify-content: start;\n }\n\n &--center {\n justify-content: center;\n }\n }\n\n ${({ $cs }) => $cs}\n`;\n\nexport const IconWrapper = styled.span`\n line-height: 0.25;\n\n &.ds-validation-message__icon {\n &--left {\n order: 1;\n }\n\n &--right {\n order: 2;\n }\n }\n`;\n\nexport const MessageWrapper = styled.span`\n &.ds-validation-message__icon {\n display: inline-block;\n line-height: 0.5;\n\n &--right {\n margin-right: 0.5rem;\n order: 1;\n }\n\n &--left {\n margin-left: 0.5rem;\n order: 2;\n }\n }\n`;\n","import classNames from \"classnames\";\n\n//Icons\nimport { AlertCircle, Check } from \"@/Icons\";\n\n// Types\nimport type { SupportingMessageProps } from \"./SupportingMessage.types\";\n\n// Styles\nimport {\n IconWrapper,\n MessageWrapper,\n Wrapper,\n} from \"./SupportingMessage.styles\";\nimport { Theme } from \"@/theme\";\n\nexport const SupportingMessage = ({\n align = \"start\",\n className,\n cs,\n icon,\n iconPosition = \"left\",\n message,\n platform = \"octopus-online\",\n showBackground = false,\n showIcon = true,\n status = \"success\",\n ...rest\n}: SupportingMessageProps) => {\n const validationMsgClasses = classNames(\n \"ds-validation-message\",\n `ds-validation-message__content--${align}`,\n className\n );\n const iconClasses = classNames(\n \"ds-validation-message__icon\",\n `ds-validation-message__icon--${iconPosition}`,\n `ds-validation-message__icon--${status}`\n );\n\n const ValidationIcon = status === \"success\" ? : ;\n\n return (\n \n \n {showIcon ? (\n \n {icon ?? ValidationIcon}\n \n ) : null}\n \n {message}\n \n \n \n );\n};\n","import styled, { css } from \"styled-components\";\n\nconst variantOptions = {\n outline: {\n borderWidth: \"2px\",\n borderStyle: \"solid\",\n },\n elevate: {\n boxShadow: \"0 0px 8px 0 rgba(27, 7, 58, 10%)\",\n },\n};\n\ntype TCardStylesProps = {\n $active?: boolean;\n $container?: boolean;\n $cs?: any;\n $height?: string | number;\n $hover?: boolean;\n $item?: boolean;\n $mb?: number;\n $mt?: number;\n $platform?: string;\n $removeBorder?: boolean;\n $variant?: string | string[];\n $width?: string | number;\n $overflow?: boolean;\n};\n\nexport const Wrapper = styled.div`\n position: relative;\n width: ${({ $width }) =>\n typeof $width === \"number\" ? `${$width}rem` : $width};\n height: ${({ $height }) =>\n typeof $height === \"number\" ? `${$height}rem` : $height};\n ${({ $mb }) => $mb && `margin-bottom: ${$mb}rem;`}\n ${({ $mt }) => $mt && `margin-top: ${$mt}rem;`}\n background-color: ${({ $active, theme, $platform }) =>\n $active ? theme[$platform!].colors.white : theme[$platform!].card.disabled};\n ${({ $active, $variant, $removeBorder }) =>\n $active &&\n $variant !== \"outline\" &&\n !$removeBorder &&\n css`\n border-width: 2px;\n border-style: solid;\n border-color: ${({ $active, theme, $platform }: any) =>\n $active\n ? `${theme[$platform].card.border.active}`\n : ` ${theme[$platform].card.border.disabled}`};\n `}\n border-color: ${({ $active, theme, $platform }: any) =>\n !$active && ` ${theme[$platform].card.border.disabled}`};\n border-radius: 0.5rem;\n ${({ $variant }) => {\n if (typeof $variant === \"string\")\n return (\n $variant && variantOptions[$variant as keyof typeof variantOptions]\n );\n if (Array.isArray($variant)) {\n if ($variant.includes(\"outline\") && $variant.includes(\"elevate\")) {\n return css`\n box-shadow: 0 0 8px 0 rgba(27, 7, 58, 10%);\n `;\n } else {\n return variantOptions[$variant[0] as keyof typeof variantOptions];\n }\n }\n }};\n ${({ $overflow }) =>\n $overflow &&\n css`\n overflow: hidden;\n `}\n ${({ $hover }) =>\n $hover &&\n css`\n &:hover {\n border-color: #000;\n transition: all 0.5s ease-in;\n }\n `}\n ${({ $cs }) => $cs};\n`;\n","import styled from \"styled-components\";\n\nexport const Wrapper = styled.div`\n margin: 1.5rem 0;\n`;\n","import styled from \"styled-components\";\n\nexport const Wrapper = styled.div<{ $cs: any; $platform: string }>`\n background-color: ${({ theme, $platform }) =>\n theme[$platform].accordion[\"heading-background\"] ?? theme};\n border-bottom: 1px solid\n ${({ theme, $platform }) => theme[$platform].accordion[\"border-color\"]};\n border-top: 1px solid\n ${({ theme, $platform }) => theme[$platform].accordion[\"border-color\"]};\n cursor: pointer;\n display: flex;\n padding: 1.5rem 1rem;\n justify-content: space-between;\n transition: all 1s ease;\n\n ${({ $cs }) => $cs};\n`;\n\nexport const Content = styled.div<{ $platform: string }>`\n color: ${({ theme, $platform }) => theme[$platform][\"text-color\"]};\n font-size: 1.125rem;\n font-weight: 600;\n line-height: 1.625rem;\n width: 100%;\n`;\n","import styled, { css } from \"styled-components\";\n\n// Components\nimport { Button } from \"@/components/Inputs/Button/Button\";\n\n// Helpers\nimport { MobileStyles, TabletStyles } from \"@/utils/styles/styles\";\nimport { COLORS } from \"@/utils/styles/colors\";\n\nexport const CardWrapperStyle = styled.div`\n align-items: center;\n border-radius: 0.5rem;\n box-shadow: 0 0.25rem 0.5rem rgba(27, 7, 58, 10%);\n display: flex;\n padding: 1rem 0.75rem 1rem 0;\n\n ${TabletStyles(`\n align-items: start;\n flex-wrap: wrap;\n padding: 0.5rem 0.75rem 0.75rem;\n `)};\n\n ${MobileStyles(`\n flex-direction: column;\n padding: 0.75rem;\n `)};\n`;\n\nexport const CardGridStyle = styled.div<{ $columns: any }>`\n display: grid;\n grid-template-columns: ${({ $columns }) =>\n `repeat(${$columns}, minmax(20%, 1fr)) max-content`};\n grid-auto-rows: min-content;\n flex-grow: 1;\n min-width: min-content;\n\n ${TabletStyles(`\n grid-template-columns: repeat(2, 50%);\n `)};\n\n ${MobileStyles(`\n grid-template-columns: 1fr;\n `)};\n`;\n\nexport const CardItemStyle = styled.div<{\n $noBorder: boolean;\n $isFragment: boolean;\n}>`\n align-items: center;\n border-left: 1px solid ${COLORS.utilityGrey};\n display: flex;\n padding: 0.5rem 0.75rem 0.5rem 1.5rem;\n word-wrap: break-word;\n\n h1,\n h2,\n h3,\n h4,\n p {\n overflow: hidden;\n }\n\n ${({ $noBorder }) =>\n $noBorder &&\n `\n border-left: none;\n `}\n\n ${TabletStyles(css`\n border-left: none;\n padding: 1rem 0.75rem;\n\n &:nth-child(n + 3) {\n border-top: 1px solid ${COLORS.utilityGrey};\n padding-left: 0.75rem;\n }\n\n ${({ $isFragment }: any) =>\n $isFragment &&\n `\n display: none;\n `}\n `)}\n\n ${MobileStyles(`\n padding: 0.75rem;\n &:not(:first-of-type) {\n border: none;\n }\n `)}\n`;\n\nexport const CardButtonStyle = styled(Button)<{ $isHidden: boolean }>`\n align-self: center;\n margin-right: 0.75rem;\n\n ${({ $isHidden }) => $isHidden && `visibility: hidden;`}\n\n ${TabletStyles(`\n align-self: start;\n margin-top: 1rem;\n `)}\n\n ${MobileStyles(`\n margin: 0.5rem;\n `)}\n`;\n","import styled, { css } from \"styled-components\";\n\ntype WrapperProps = {\n $active?: boolean;\n $cs?: any;\n};\n\nexport const Wrapper = styled.div`\n height: 100%;\n ${({ $active }) =>\n $active\n ? css`\n cursor: pointer;\n pointer-events: auto;\n `\n : css`\n cursor: initial;\n pointer-events: none;\n `};\n ${({ $cs }) => $cs};\n`;\n","import styled from \"styled-components\";\n\nconst Spacing = {\n xs: 0.5,\n sm: 1,\n md: 1.5,\n lg: 2,\n};\n\nexport const CardBodyWrapper = styled.div<{ $paddingSize: string; $cs: any }>`\n ${({ $paddingSize }) =>\n $paddingSize &&\n `padding: ${Spacing[$paddingSize as keyof typeof Spacing]}rem;`}\n ${({ $cs }) => $cs};\n`;\n","import styled, { css } from \"styled-components\";\n\nimport { COLORS } from \"@/utils/styles/colors\";\n\nfunction tagColors(color: string) {\n const colourOptions = {\n grey: {\n bgc: COLORS.utilityGrey,\n col: COLORS.darkGrey,\n },\n blue: {\n bgc: COLORS.tagBlueAccent,\n col: COLORS.tagBlue,\n },\n purple: {\n bgc: COLORS.tagPurpleAccent,\n col: COLORS.tagPurple,\n },\n };\n const { bgc, col } = colourOptions[color as keyof typeof colourOptions];\n\n return css`\n background-color: ${bgc};\n color: ${col};\n `;\n}\n\nconst TagStyle = styled.span<{\n $showNotification: boolean;\n $cs: any;\n $color: string;\n}>`\n cursor: default;\n font-size: 0.75rem;\n font-weight: 500;\n ${({ $showNotification }) => $showNotification && \"margin-right: 1rem\"};\n max-height: 1.5rem;\n padding: 0.19rem\n ${({ $showNotification }) => ($showNotification ? \"0.5rem\" : \"1rem\")};\n ${({ $showNotification }) =>\n $showNotification &&\n css`\n cursor: pointer;\n\n &:hover {\n span {\n text-decoration: underline;\n }\n }\n `}\n\n &:last-of-type {\n margin-right: 0;\n }\n ${({ $cs }) => $cs};\n ${({ $color }) => tagColors($color)};\n`;\n\nexport const ChipLabel = styled.span<{ $showNotification: boolean }>`\n ${({ $showNotification }) => $showNotification && `margin-left: 5px;`}\n`;\n\nexport const NormalTagStyle = styled(TagStyle)`\n border-radius: 0.25rem;\n`;\n\nexport const RoundedTagStyle = styled(TagStyle)`\n border-radius: 0.75rem;\n`;\n","import styled from \"styled-components\";\n\nconst marginSizes = {\n sm: \"0.5rem\",\n md: \"1rem\",\n lg: \"1.5rem\",\n xl: \"2rem\",\n};\n\nexport const Wrapper = styled.div<{\n $margin?: keyof typeof marginSizes;\n $platform: string;\n}>`\n background-color: ${({ theme, $platform }) =>\n theme[$platform].divider.background ?? \"transparent\"};\n height: 0.05rem;\n margin: ${({ $margin }) => marginSizes[$margin as keyof typeof marginSizes]} 0;\n width: 100%;\n`;\n","import styled from \"styled-components\";\n\n// Components\nimport { Button } from \"@/components/Inputs/Button/Button\";\n\nexport const Wrapper = styled.div`\n align-items: center;\n flex-direction: column;\n display: flex;\n`;\n\nexport const EmptyStateIcon = styled.div`\n height: 3.5rem;\n\n svg {\n transform: scale(calc(2 + 1 / 3));\n transform-origin: top;\n }\n`;\n\nexport const EmptyStateTitle = styled.p`\n font-size: 1.125rem;\n font-weight: 600;\n margin: 1.5rem 0 0;\n`;\n\nexport const EmptyStateText = styled.div`\n margin: 0.5rem 0 0;\n`;\n\nexport const EmptyStateButton = styled(Button)`\n margin-top: 2rem;\n`;\n","import type { ComponentDefaultProps } from \"@/types\";\n\nimport { Wrapper } from \"./Divider.styles\";\nimport { Theme } from \"@/theme\";\n\ntype TDivider = {\n margin?: \"sm\" | \"md\" | \"lg\" | \"xl\";\n platform?: string;\n} & ComponentDefaultProps;\n\nexport const Divider = ({\n margin = \"sm\",\n platform = \"octopus-online\",\n ...rest\n}: TDivider) => {\n return (\n \n \n \n );\n};\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n return _assertThisInitialized(_this);\n }\n return PolishedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar unitRegExp = /((?!\\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\\D|$)|ged|darg?|nrut)/g;\n\n// Merges additional math functionality into the defaults.\nfunction mergeSymbolMaps(additionalSymbols) {\n var symbolMap = {};\n symbolMap.symbols = additionalSymbols ? _extends({}, defaultSymbolMap.symbols, additionalSymbols.symbols) : _extends({}, defaultSymbolMap.symbols);\n return symbolMap;\n}\nfunction exec(operators, values) {\n var _ref;\n var op = operators.pop();\n values.push(op.f.apply(op, (_ref = []).concat.apply(_ref, values.splice(-op.argCount))));\n return op.precedence;\n}\nfunction calculate(expression, additionalSymbols) {\n var symbolMap = mergeSymbolMaps(additionalSymbols);\n var match;\n var operators = [symbolMap.symbols['('].prefix];\n var values = [];\n var pattern = new RegExp( // Pattern for numbers\n \"\\\\d+(?:\\\\.\\\\d+)?|\" +\n // ...and patterns for individual operators/function names\n Object.keys(symbolMap.symbols).map(function (key) {\n return symbolMap.symbols[key];\n })\n // longer symbols should be listed first\n // $FlowFixMe\n .sort(function (a, b) {\n return b.symbol.length - a.symbol.length;\n })\n // $FlowFixMe\n .map(function (val) {\n return val.regSymbol;\n }).join('|') + \"|(\\\\S)\", 'g');\n pattern.lastIndex = 0; // Reset regular expression object\n\n var afterValue = false;\n do {\n match = pattern.exec(expression);\n var _ref2 = match || [')', undefined],\n token = _ref2[0],\n bad = _ref2[1];\n var notNumber = symbolMap.symbols[token];\n var notNewValue = notNumber && !notNumber.prefix && !notNumber.func;\n var notAfterValue = !notNumber || !notNumber.postfix && !notNumber.infix;\n\n // Check for syntax errors:\n if (bad || (afterValue ? notAfterValue : notNewValue)) {\n throw new PolishedError(37, match ? match.index : expression.length, expression);\n }\n if (afterValue) {\n // We either have an infix or postfix operator (they should be mutually exclusive)\n var curr = notNumber.postfix || notNumber.infix;\n do {\n var prev = operators[operators.length - 1];\n if ((curr.precedence - prev.precedence || prev.rightToLeft) > 0) break;\n // Apply previous operator, since it has precedence over current one\n } while (exec(operators, values)); // Exit loop after executing an opening parenthesis or function\n afterValue = curr.notation === 'postfix';\n if (curr.symbol !== ')') {\n operators.push(curr);\n // Postfix always has precedence over any operator that follows after it\n if (afterValue) exec(operators, values);\n }\n } else if (notNumber) {\n // prefix operator or function\n operators.push(notNumber.prefix || notNumber.func);\n if (notNumber.func) {\n // Require an opening parenthesis\n match = pattern.exec(expression);\n if (!match || match[0] !== '(') {\n throw new PolishedError(38, match ? match.index : expression.length, expression);\n }\n }\n } else {\n // number\n values.push(+token);\n afterValue = true;\n }\n } while (match && operators.length);\n if (operators.length) {\n throw new PolishedError(39, match ? match.index : expression.length, expression);\n } else if (match) {\n throw new PolishedError(40, match ? match.index : expression.length, expression);\n } else {\n return values.pop();\n }\n}\nfunction reverseString(str) {\n return str.split('').reverse().join('');\n}\n\n/**\n * Helper for doing math with CSS Units. Accepts a formula as a string. All values in the formula must have the same unit (or be unitless). Supports complex formulas utliziing addition, subtraction, multiplication, division, square root, powers, factorial, min, max, as well as parentheses for order of operation.\n *\n *In cases where you need to do calculations with mixed units where one unit is a [relative length unit](https://developer.mozilla.org/en-US/docs/Web/CSS/length#Relative_length_units), you will want to use [CSS Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc).\n *\n * *warning* While we've done everything possible to ensure math safely evalutes formulas expressed as strings, you should always use extreme caution when passing `math` user provided values.\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: math('12rem + 8rem'),\n * fontSize: math('(12px + 2px) * 3'),\n * fontSize: math('3px^2 + sqrt(4)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${math('12rem + 8rem')};\n * fontSize: ${math('(12px + 2px) * 3')};\n * fontSize: ${math('3px^2 + sqrt(4)')};\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * fontSize: '20rem',\n * fontSize: '42px',\n * fontSize: '11px',\n * }\n */\nfunction math(formula, additionalSymbols) {\n var reversedFormula = reverseString(formula);\n var formulaMatch = reversedFormula.match(unitRegExp);\n\n // Check that all units are the same\n if (formulaMatch && !formulaMatch.every(function (unit) {\n return unit === formulaMatch[0];\n })) {\n throw new PolishedError(41);\n }\n var cleanFormula = reverseString(reversedFormula.replace(unitRegExp, ''));\n return \"\" + calculate(cleanFormula, additionalSymbols) + (formulaMatch ? reverseString(formulaMatch[0]) : '');\n}\n\nvar cssVariableRegex = /--[\\S]*/g;\n\n/**\n * Fetches the value of a passed CSS Variable in the :root scope, or otherwise returns a defaultValue if provided.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'background': cssVar('--background-color'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${cssVar('--background-color')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'background': 'red'\n * }\n */\nfunction cssVar(cssVariable, defaultValue) {\n if (!cssVariable || !cssVariable.match(cssVariableRegex)) {\n throw new PolishedError(73);\n }\n var variableValue;\n\n /* eslint-disable */\n /* istanbul ignore next */\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n variableValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable);\n }\n /* eslint-enable */\n\n if (variableValue) {\n return variableValue.trim();\n } else if (defaultValue) {\n return defaultValue;\n }\n throw new PolishedError(74);\n}\n\n// @private\nfunction capitalizeString(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar positionMap$1 = ['Top', 'Right', 'Bottom', 'Left'];\nfunction generateProperty(property, position) {\n if (!property) return position.toLowerCase();\n var splitProperty = property.split('-');\n if (splitProperty.length > 1) {\n splitProperty.splice(1, 0, position);\n return splitProperty.reduce(function (acc, val) {\n return \"\" + acc + capitalizeString(val);\n });\n }\n var joinedProperty = property.replace(/([a-z])([A-Z])/g, \"$1\" + position + \"$2\");\n return property === joinedProperty ? \"\" + property + position : joinedProperty;\n}\nfunction generateStyles(property, valuesWithDefaults) {\n var styles = {};\n for (var i = 0; i < valuesWithDefaults.length; i += 1) {\n if (valuesWithDefaults[i] || valuesWithDefaults[i] === 0) {\n styles[generateProperty(property, positionMap$1[i])] = valuesWithDefaults[i];\n }\n }\n return styles;\n}\n\n/**\n * Enables shorthand for direction-based properties. It accepts a property (hyphenated or camelCased) and up to four values that map to top, right, bottom, and left, respectively. You can optionally pass an empty string to get only the directional values as properties. You can also optionally pass a null argument for a directional value to ignore it.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...directionalProperty('padding', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${directionalProperty('padding', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\nfunction directionalProperty(property) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n // prettier-ignore\n var firstValue = values[0],\n _values$ = values[1],\n secondValue = _values$ === void 0 ? firstValue : _values$,\n _values$2 = values[2],\n thirdValue = _values$2 === void 0 ? firstValue : _values$2,\n _values$3 = values[3],\n fourthValue = _values$3 === void 0 ? secondValue : _values$3;\n var valuesWithDefaults = [firstValue, secondValue, thirdValue, fourthValue];\n return generateStyles(property, valuesWithDefaults);\n}\n\n/**\n * Check if a string ends with something\n * @private\n */\nfunction endsWith(string, suffix) {\n return string.substr(-suffix.length) === suffix;\n}\n\nvar cssRegex$1 = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n\n/**\n * Returns a given CSS value minus its unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100\n * }\n */\nfunction stripUnit(value) {\n if (typeof value !== 'string') return value;\n var matchedValue = value.match(cssRegex$1);\n return matchedValue ? parseFloat(value) : value;\n}\n\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\nvar pxtoFactory = function pxtoFactory(to) {\n return function (pxval, base) {\n if (base === void 0) {\n base = '16px';\n }\n var newPxval = pxval;\n var newBase = base;\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n newPxval = stripUnit(pxval);\n }\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n newBase = stripUnit(base);\n }\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n return \"\" + newPxval / newBase + to;\n };\n};\nvar pixelsto = pxtoFactory;\n\n/**\n * Convert pixel value to ems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': em('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${em('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1em'\n * }\n */\nvar em = pixelsto('em');\nvar em$1 = em;\n\nvar cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n\n/**\n * Returns a given CSS value and its unit as elements of an array.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': getValueAndUnit('100px')[0],\n * '--unit': getValueAndUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${getValueAndUnit('100px')[0]};\n * --unit: ${getValueAndUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\nfunction getValueAndUnit(value) {\n if (typeof value !== 'string') return [value, ''];\n var matchedValue = value.match(cssRegex);\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n}\n\n/**\n * Helper for targeting rules in a style block generated by polished modules that need !important-level specificity. Can optionally specify a rule (or rules) to target specific rules.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...important(cover())\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${important(cover())}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute !important',\n * 'top': '0 !important',\n * 'right: '0 !important',\n * 'bottom': '0 !important',\n * 'left: '0 !important'\n * }\n */\nfunction important(styleBlock, rules) {\n if (typeof styleBlock !== 'object' || styleBlock === null) {\n throw new PolishedError(75, typeof styleBlock);\n }\n var newStyleBlock = {};\n Object.keys(styleBlock).forEach(function (key) {\n if (typeof styleBlock[key] === 'object' && styleBlock[key] !== null) {\n newStyleBlock[key] = important(styleBlock[key], rules);\n } else if (!rules || rules && (rules === key || rules.indexOf(key) >= 0)) {\n newStyleBlock[key] = styleBlock[key] + \" !important\";\n } else {\n newStyleBlock[key] = styleBlock[key];\n }\n });\n return newStyleBlock;\n}\n\nvar ratioNames = {\n minorSecond: 1.067,\n majorSecond: 1.125,\n minorThird: 1.2,\n majorThird: 1.25,\n perfectFourth: 1.333,\n augFourth: 1.414,\n perfectFifth: 1.5,\n minorSixth: 1.6,\n goldenSection: 1.618,\n majorSixth: 1.667,\n minorSeventh: 1.778,\n majorSeventh: 1.875,\n octave: 2,\n majorTenth: 2.5,\n majorEleventh: 2.667,\n majorTwelfth: 3,\n doubleOctave: 4\n};\nfunction getRatio(ratioName) {\n return ratioNames[ratioName];\n}\n\n/**\n * Establish consistent measurements and spacial relationships throughout your projects by incrementing an em or rem value up or down a defined scale. We provide a list of commonly used scales as pre-defined variables.\n * @example\n * // Styles as object usage\n * const styles = {\n * // Increment two steps up the default scale\n * 'fontSize': modularScale(2)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * // Increment two steps up the default scale\n * fontSize: ${modularScale(2)}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'fontSize': '1.77689em'\n * }\n */\nfunction modularScale(steps, base, ratio) {\n if (base === void 0) {\n base = '1em';\n }\n if (ratio === void 0) {\n ratio = 1.333;\n }\n if (typeof steps !== 'number') {\n throw new PolishedError(42);\n }\n if (typeof ratio === 'string' && !ratioNames[ratio]) {\n throw new PolishedError(43);\n }\n var _ref = typeof base === 'string' ? getValueAndUnit(base) : [base, ''],\n realBase = _ref[0],\n unit = _ref[1];\n var realRatio = typeof ratio === 'string' ? getRatio(ratio) : ratio;\n if (typeof realBase === 'string') {\n throw new PolishedError(44, base);\n }\n return \"\" + realBase * Math.pow(realRatio, steps) + (unit || '');\n}\n\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\nvar rem = pixelsto('rem');\nvar rem$1 = rem;\n\nvar defaultFontSize = 16;\nfunction convertBase(base) {\n var deconstructedValue = getValueAndUnit(base);\n if (deconstructedValue[1] === 'px') {\n return parseFloat(base);\n }\n if (deconstructedValue[1] === '%') {\n return parseFloat(base) / 100 * defaultFontSize;\n }\n throw new PolishedError(78, deconstructedValue[1]);\n}\nfunction getBaseFromDoc() {\n /* eslint-disable */\n /* istanbul ignore next */\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n var rootFontSize = getComputedStyle(document.documentElement).fontSize;\n return rootFontSize ? convertBase(rootFontSize) : defaultFontSize;\n }\n /* eslint-enable */\n /* istanbul ignore next */\n return defaultFontSize;\n}\n\n/**\n * Convert rem values to px. By default, the base value is pulled from the font-size property on the root element (if it is set in % or px). It defaults to 16px if not found on the root. You can also override the base value by providing your own base in % or px.\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': remToPx('1.6rem')\n * 'height': remToPx('1.6rem', '10px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${remToPx('1.6rem')}\n * height: ${remToPx('1.6rem', '10px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '25.6px',\n * 'height': '16px',\n * }\n */\nfunction remToPx(value, base) {\n var deconstructedValue = getValueAndUnit(value);\n if (deconstructedValue[1] !== 'rem' && deconstructedValue[1] !== '') {\n throw new PolishedError(77, deconstructedValue[1]);\n }\n var newBase = base ? convertBase(base) : getBaseFromDoc();\n return deconstructedValue[0] * newBase + \"px\";\n}\n\nvar functionsMap$3 = {\n back: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n circ: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n cubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n expo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n quad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n quart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n quint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n sine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)'\n};\n\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeIn('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeIn('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\nfunction easeIn(functionName) {\n return functionsMap$3[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$2 = {\n back: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n circ: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n cubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n expo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n quad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n quart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n quint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n sine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeInOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeInOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n * }\n */\nfunction easeInOut(functionName) {\n return functionsMap$2[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$1 = {\n back: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n cubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n circ: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n expo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n quad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n quart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n quint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n sine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)'\n};\n\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n * }\n */\nfunction easeOut(functionName) {\n return functionsMap$1[functionName.toLowerCase().trim()];\n}\n\n/**\n * Returns a CSS calc formula for linear interpolation of a property between two values. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px').\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: between('20px', '100px', '400px', '1000px'),\n * fontSize: between('20px', '100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${between('20px', '100px', '400px', '1000px')};\n * fontSize: ${between('20px', '100px')}\n * `\n *\n * // CSS as JS Output\n *\n * h1: {\n * 'fontSize': 'calc(-33.33333333333334px + 13.333333333333334vw)',\n * 'fontSize': 'calc(-9.090909090909093px + 9.090909090909092vw)'\n * }\n */\nfunction between(fromSize, toSize, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n var _getValueAndUnit = getValueAndUnit(fromSize),\n unitlessFromSize = _getValueAndUnit[0],\n fromSizeUnit = _getValueAndUnit[1];\n var _getValueAndUnit2 = getValueAndUnit(toSize),\n unitlessToSize = _getValueAndUnit2[0],\n toSizeUnit = _getValueAndUnit2[1];\n var _getValueAndUnit3 = getValueAndUnit(minScreen),\n unitlessMinScreen = _getValueAndUnit3[0],\n minScreenUnit = _getValueAndUnit3[1];\n var _getValueAndUnit4 = getValueAndUnit(maxScreen),\n unitlessMaxScreen = _getValueAndUnit4[0],\n maxScreenUnit = _getValueAndUnit4[1];\n if (typeof unitlessMinScreen !== 'number' || typeof unitlessMaxScreen !== 'number' || !minScreenUnit || !maxScreenUnit || minScreenUnit !== maxScreenUnit) {\n throw new PolishedError(47);\n }\n if (typeof unitlessFromSize !== 'number' || typeof unitlessToSize !== 'number' || fromSizeUnit !== toSizeUnit) {\n throw new PolishedError(48);\n }\n if (fromSizeUnit !== minScreenUnit || toSizeUnit !== maxScreenUnit) {\n throw new PolishedError(76);\n }\n var slope = (unitlessFromSize - unitlessToSize) / (unitlessMinScreen - unitlessMaxScreen);\n var base = unitlessToSize - slope * unitlessMaxScreen;\n return \"calc(\" + base.toFixed(2) + (fromSizeUnit || '') + \" + \" + (100 * slope).toFixed(2) + \"vw)\";\n}\n\n/**\n * CSS to contain a float (credit to CSSMojo).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...clearFix(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${clearFix()}\n * `\n *\n * // CSS as JS Output\n *\n * '&::after': {\n * 'clear': 'both',\n * 'content': '\"\"',\n * 'display': 'table'\n * }\n */\nfunction clearFix(parent) {\n var _ref;\n if (parent === void 0) {\n parent = '&';\n }\n var pseudoSelector = parent + \"::after\";\n return _ref = {}, _ref[pseudoSelector] = {\n clear: 'both',\n content: '\"\"',\n display: 'table'\n }, _ref;\n}\n\n/**\n * CSS to fully cover an area. Can optionally be passed an offset to act as a \"padding\".\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...cover()\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${cover()}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute',\n * 'top': '0',\n * 'right: '0',\n * 'bottom': '0',\n * 'left: '0'\n * }\n */\nfunction cover(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n return {\n position: 'absolute',\n top: offset,\n right: offset,\n bottom: offset,\n left: offset\n };\n}\n\n/**\n * CSS to represent truncated text with an ellipsis. You can optionally pass a max-width and number of lines before truncating.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...ellipsis('250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${ellipsis('250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'display': 'inline-block',\n * 'maxWidth': '250px',\n * 'overflow': 'hidden',\n * 'textOverflow': 'ellipsis',\n * 'whiteSpace': 'nowrap',\n * 'wordWrap': 'normal'\n * }\n */\nfunction ellipsis(width, lines) {\n if (lines === void 0) {\n lines = 1;\n }\n var styles = {\n display: 'inline-block',\n maxWidth: width || '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n };\n return lines > 1 ? _extends({}, styles, {\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lines,\n display: '-webkit-box',\n whiteSpace: 'normal'\n }) : styles;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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/**\n * Returns a set of media queries that resizes a property (or set of properties) between a provided fromSize and toSize. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px') to constrain the interpolation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * \"@media (min-width: 1000px)\": Object {\n * \"padding\": \"100px\",\n * },\n * \"@media (min-width: 400px)\": Object {\n * \"padding\": \"calc(-33.33333333333334px + 13.333333333333334vw)\",\n * },\n * \"padding\": \"20px\",\n * }\n */\nfunction fluidRange(cssProp, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n if (!Array.isArray(cssProp) && typeof cssProp !== 'object' || cssProp === null) {\n throw new PolishedError(49);\n }\n if (Array.isArray(cssProp)) {\n var mediaQueries = {};\n var fallbacks = {};\n for (var _iterator = _createForOfIteratorHelperLoose(cssProp), _step; !(_step = _iterator()).done;) {\n var _extends2, _extends3;\n var obj = _step.value;\n if (!obj.prop || !obj.fromSize || !obj.toSize) {\n throw new PolishedError(50);\n }\n fallbacks[obj.prop] = obj.fromSize;\n mediaQueries[\"@media (min-width: \" + minScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + minScreen + \")\"], (_extends2 = {}, _extends2[obj.prop] = between(obj.fromSize, obj.toSize, minScreen, maxScreen), _extends2));\n mediaQueries[\"@media (min-width: \" + maxScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + maxScreen + \")\"], (_extends3 = {}, _extends3[obj.prop] = obj.toSize, _extends3));\n }\n return _extends({}, fallbacks, mediaQueries);\n } else {\n var _ref, _ref2, _ref3;\n if (!cssProp.prop || !cssProp.fromSize || !cssProp.toSize) {\n throw new PolishedError(51);\n }\n return _ref3 = {}, _ref3[cssProp.prop] = cssProp.fromSize, _ref3[\"@media (min-width: \" + minScreen + \")\"] = (_ref = {}, _ref[cssProp.prop] = between(cssProp.fromSize, cssProp.toSize, minScreen, maxScreen), _ref), _ref3[\"@media (min-width: \" + maxScreen + \")\"] = (_ref2 = {}, _ref2[cssProp.prop] = cssProp.toSize, _ref2), _ref3;\n }\n}\n\nvar dataURIRegex = /^\\s*data:([a-z]+\\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\\-._~:@/?%\\s]*\\s*$/i;\nvar formatHintMap = {\n woff: 'woff',\n woff2: 'woff2',\n ttf: 'truetype',\n otf: 'opentype',\n eot: 'embedded-opentype',\n svg: 'svg',\n svgz: 'svg'\n};\nfunction generateFormatHint(format, formatHint) {\n if (!formatHint) return '';\n return \" format(\\\"\" + formatHintMap[format] + \"\\\")\";\n}\nfunction isDataURI(fontFilePath) {\n return !!fontFilePath.replace(/\\s+/g, ' ').match(dataURIRegex);\n}\nfunction generateFileReferences(fontFilePath, fileFormats, formatHint) {\n if (isDataURI(fontFilePath)) {\n return \"url(\\\"\" + fontFilePath + \"\\\")\" + generateFormatHint(fileFormats[0], formatHint);\n }\n var fileFontReferences = fileFormats.map(function (format) {\n return \"url(\\\"\" + fontFilePath + \".\" + format + \"\\\")\" + generateFormatHint(format, formatHint);\n });\n return fileFontReferences.join(', ');\n}\nfunction generateLocalReferences(localFonts) {\n var localFontReferences = localFonts.map(function (font) {\n return \"local(\\\"\" + font + \"\\\")\";\n });\n return localFontReferences.join(', ');\n}\nfunction generateSources(fontFilePath, localFonts, fileFormats, formatHint) {\n var fontReferences = [];\n if (localFonts) fontReferences.push(generateLocalReferences(localFonts));\n if (fontFilePath) {\n fontReferences.push(generateFileReferences(fontFilePath, fileFormats, formatHint));\n }\n return fontReferences.join(', ');\n}\n\n/**\n * CSS for a @font-face declaration. Defaults to check for local copies of the font on the user's machine. You can disable this by passing `null` to localFonts.\n *\n * @example\n * // Styles as object basic usage\n * const styles = {\n * ...fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * })\n * }\n *\n * // styled-components basic usage\n * const GlobalStyle = createGlobalStyle`${\n * fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * }\n * )}`\n *\n * // CSS as JS Output\n *\n * '@font-face': {\n * 'fontFamily': 'Sans-Pro',\n * 'src': 'url(\"path/to/file.eot\"), url(\"path/to/file.woff2\"), url(\"path/to/file.woff\"), url(\"path/to/file.ttf\"), url(\"path/to/file.svg\")',\n * }\n */\n\nfunction fontFace(_ref) {\n var fontFamily = _ref.fontFamily,\n fontFilePath = _ref.fontFilePath,\n fontStretch = _ref.fontStretch,\n fontStyle = _ref.fontStyle,\n fontVariant = _ref.fontVariant,\n fontWeight = _ref.fontWeight,\n _ref$fileFormats = _ref.fileFormats,\n fileFormats = _ref$fileFormats === void 0 ? ['eot', 'woff2', 'woff', 'ttf', 'svg'] : _ref$fileFormats,\n _ref$formatHint = _ref.formatHint,\n formatHint = _ref$formatHint === void 0 ? false : _ref$formatHint,\n _ref$localFonts = _ref.localFonts,\n localFonts = _ref$localFonts === void 0 ? [fontFamily] : _ref$localFonts,\n unicodeRange = _ref.unicodeRange,\n fontDisplay = _ref.fontDisplay,\n fontVariationSettings = _ref.fontVariationSettings,\n fontFeatureSettings = _ref.fontFeatureSettings;\n // Error Handling\n if (!fontFamily) throw new PolishedError(55);\n if (!fontFilePath && !localFonts) {\n throw new PolishedError(52);\n }\n if (localFonts && !Array.isArray(localFonts)) {\n throw new PolishedError(53);\n }\n if (!Array.isArray(fileFormats)) {\n throw new PolishedError(54);\n }\n var fontFaceDeclaration = {\n '@font-face': {\n fontFamily: fontFamily,\n src: generateSources(fontFilePath, localFonts, fileFormats, formatHint),\n unicodeRange: unicodeRange,\n fontStretch: fontStretch,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n fontDisplay: fontDisplay,\n fontVariationSettings: fontVariationSettings,\n fontFeatureSettings: fontFeatureSettings\n }\n };\n\n // Removes undefined fields for cleaner css object.\n return JSON.parse(JSON.stringify(fontFaceDeclaration));\n}\n\n/**\n * CSS to hide text to show a background image in a SEO-friendly way.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'backgroundImage': 'url(logo.png)',\n * ...hideText(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * backgroundImage: url(logo.png);\n * ${hideText()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'backgroundImage': 'url(logo.png)',\n * 'textIndent': '101%',\n * 'overflow': 'hidden',\n * 'whiteSpace': 'nowrap',\n * }\n */\nfunction hideText() {\n return {\n textIndent: '101%',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n };\n}\n\n/**\n * CSS to hide content visually but remain accessible to screen readers.\n * from [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate/blob/9a176f57af1cfe8ec70300da4621fb9b07e5fa31/src/css/main.css#L121)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...hideVisually(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hideVisually()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'border': '0',\n * 'clip': 'rect(0 0 0 0)',\n * 'height': '1px',\n * 'margin': '-1px',\n * 'overflow': 'hidden',\n * 'padding': '0',\n * 'position': 'absolute',\n * 'whiteSpace': 'nowrap',\n * 'width': '1px',\n * }\n */\nfunction hideVisually() {\n return {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n };\n}\n\n/**\n * Generates a media query to target HiDPI devices.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * [hiDPI(1.5)]: {\n * width: 200px;\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hiDPI(1.5)} {\n * width: 200px;\n * }\n * `\n *\n * // CSS as JS Output\n *\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n * only screen and (min--moz-device-pixel-ratio: 1.5),\n * only screen and (-o-min-device-pixel-ratio: 1.5/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * 'width': '200px',\n * }\n */\nfunction hiDPI(ratio) {\n if (ratio === void 0) {\n ratio = 1.3;\n }\n return \"\\n @media only screen and (-webkit-min-device-pixel-ratio: \" + ratio + \"),\\n only screen and (min--moz-device-pixel-ratio: \" + ratio + \"),\\n only screen and (-o-min-device-pixel-ratio: \" + ratio + \"/1),\\n only screen and (min-resolution: \" + Math.round(ratio * 96) + \"dpi),\\n only screen and (min-resolution: \" + ratio + \"dppx)\\n \";\n}\n\nfunction constructGradientValue(literals) {\n var template = '';\n for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n substitutions[_key - 1] = arguments[_key];\n }\n for (var i = 0; i < literals.length; i += 1) {\n template += literals[i];\n if (i === substitutions.length - 1 && substitutions[i]) {\n var definedValues = substitutions.filter(function (substitute) {\n return !!substitute;\n });\n // Adds leading coma if properties preceed color-stops\n if (definedValues.length > 1) {\n template = template.slice(0, -1);\n template += \", \" + substitutions[i];\n // No trailing space if color-stops is the only param provided\n } else if (definedValues.length === 1) {\n template += \"\" + substitutions[i];\n }\n } else if (substitutions[i]) {\n template += substitutions[i] + \" \";\n }\n }\n return template.trim();\n}\n\nvar _templateObject$1;\n/**\n * CSS for declaring a linear gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#FFF',\n * 'backgroundImage': 'linear-gradient(to top right, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\nfunction linearGradient(_ref) {\n var colorStops = _ref.colorStops,\n fallback = _ref.fallback,\n _ref$toDirection = _ref.toDirection,\n toDirection = _ref$toDirection === void 0 ? '' : _ref$toDirection;\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(56);\n }\n return {\n backgroundColor: fallback || colorStops[0].replace(/,\\s+/g, ',').split(' ')[0].replace(/,(?=\\S)/g, ', '),\n backgroundImage: constructGradientValue(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose([\"linear-gradient(\", \"\", \")\"])), toDirection, colorStops.join(', ').replace(/,(?=\\S)/g, ', '))\n };\n}\n\n/**\n * CSS to normalize abnormalities across browsers (normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...normalize(),\n * }\n *\n * // styled-components usage\n * const GlobalStyle = createGlobalStyle`${normalize()}`\n *\n * // CSS as JS Output\n *\n * html {\n * lineHeight: 1.15,\n * textSizeAdjust: 100%,\n * } ...\n */\nfunction normalize() {\n var _ref;\n return [(_ref = {\n html: {\n lineHeight: '1.15',\n textSizeAdjust: '100%'\n },\n body: {\n margin: '0'\n },\n main: {\n display: 'block'\n },\n h1: {\n fontSize: '2em',\n margin: '0.67em 0'\n },\n hr: {\n boxSizing: 'content-box',\n height: '0',\n overflow: 'visible'\n },\n pre: {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n },\n a: {\n backgroundColor: 'transparent'\n },\n 'abbr[title]': {\n borderBottom: 'none',\n textDecoration: 'underline'\n }\n }, _ref[\"b,\\n strong\"] = {\n fontWeight: 'bolder'\n }, _ref[\"code,\\n kbd,\\n samp\"] = {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n }, _ref.small = {\n fontSize: '80%'\n }, _ref[\"sub,\\n sup\"] = {\n fontSize: '75%',\n lineHeight: '0',\n position: 'relative',\n verticalAlign: 'baseline'\n }, _ref.sub = {\n bottom: '-0.25em'\n }, _ref.sup = {\n top: '-0.5em'\n }, _ref.img = {\n borderStyle: 'none'\n }, _ref[\"button,\\n input,\\n optgroup,\\n select,\\n textarea\"] = {\n fontFamily: 'inherit',\n fontSize: '100%',\n lineHeight: '1.15',\n margin: '0'\n }, _ref[\"button,\\n input\"] = {\n overflow: 'visible'\n }, _ref[\"button,\\n select\"] = {\n textTransform: 'none'\n }, _ref[\"button,\\n html [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"]\"] = {\n WebkitAppearance: 'button'\n }, _ref[\"button::-moz-focus-inner,\\n [type=\\\"button\\\"]::-moz-focus-inner,\\n [type=\\\"reset\\\"]::-moz-focus-inner,\\n [type=\\\"submit\\\"]::-moz-focus-inner\"] = {\n borderStyle: 'none',\n padding: '0'\n }, _ref[\"button:-moz-focusring,\\n [type=\\\"button\\\"]:-moz-focusring,\\n [type=\\\"reset\\\"]:-moz-focusring,\\n [type=\\\"submit\\\"]:-moz-focusring\"] = {\n outline: '1px dotted ButtonText'\n }, _ref.fieldset = {\n padding: '0.35em 0.625em 0.75em'\n }, _ref.legend = {\n boxSizing: 'border-box',\n color: 'inherit',\n display: 'table',\n maxWidth: '100%',\n padding: '0',\n whiteSpace: 'normal'\n }, _ref.progress = {\n verticalAlign: 'baseline'\n }, _ref.textarea = {\n overflow: 'auto'\n }, _ref[\"[type=\\\"checkbox\\\"],\\n [type=\\\"radio\\\"]\"] = {\n boxSizing: 'border-box',\n padding: '0'\n }, _ref[\"[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n [type=\\\"number\\\"]::-webkit-outer-spin-button\"] = {\n height: 'auto'\n }, _ref['[type=\"search\"]'] = {\n WebkitAppearance: 'textfield',\n outlineOffset: '-2px'\n }, _ref['[type=\"search\"]::-webkit-search-decoration'] = {\n WebkitAppearance: 'none'\n }, _ref['::-webkit-file-upload-button'] = {\n WebkitAppearance: 'button',\n font: 'inherit'\n }, _ref.details = {\n display: 'block'\n }, _ref.summary = {\n display: 'list-item'\n }, _ref.template = {\n display: 'none'\n }, _ref['[hidden]'] = {\n display: 'none'\n }, _ref), {\n 'abbr[title]': {\n textDecoration: 'underline dotted'\n }\n }];\n}\n\nvar _templateObject;\n/**\n * CSS for declaring a radial gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#00FFFF',\n * 'backgroundImage': 'radial-gradient(center ellipse farthest-corner at 45px 45px, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\nfunction radialGradient(_ref) {\n var colorStops = _ref.colorStops,\n _ref$extent = _ref.extent,\n extent = _ref$extent === void 0 ? '' : _ref$extent,\n fallback = _ref.fallback,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? '' : _ref$position,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? '' : _ref$shape;\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(57);\n }\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject || (_templateObject = _taggedTemplateLiteralLoose([\"radial-gradient(\", \"\", \"\", \"\", \")\"])), position, shape, extent, colorStops.join(', '))\n };\n}\n\n/**\n * A helper to generate a retina background image and non-retina\n * background image. The retina background image will output to a HiDPI media query. The mixin uses\n * a _2x.png filename suffix by default.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...retinaImage('my-img')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${retinaImage('my-img')}\n * `\n *\n * // CSS as JS Output\n * div {\n * backgroundImage: 'url(my-img.png)',\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.3),\n * only screen and (min--moz-device-pixel-ratio: 1.3),\n * only screen and (-o-min-device-pixel-ratio: 1.3/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * backgroundImage: 'url(my-img_2x.png)',\n * }\n * }\n */\nfunction retinaImage(filename, backgroundSize, extension, retinaFilename, retinaSuffix) {\n var _ref;\n if (extension === void 0) {\n extension = 'png';\n }\n if (retinaSuffix === void 0) {\n retinaSuffix = '_2x';\n }\n if (!filename) {\n throw new PolishedError(58);\n }\n // Replace the dot at the beginning of the passed extension if one exists\n var ext = extension.replace(/^\\./, '');\n var rFilename = retinaFilename ? retinaFilename + \".\" + ext : \"\" + filename + retinaSuffix + \".\" + ext;\n return _ref = {\n backgroundImage: \"url(\" + filename + \".\" + ext + \")\"\n }, _ref[hiDPI()] = _extends({\n backgroundImage: \"url(\" + rFilename + \")\"\n }, backgroundSize ? {\n backgroundSize: backgroundSize\n } : {}), _ref;\n}\n\n/* eslint-disable key-spacing */\nvar functionsMap = {\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n easeInCirc: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n easeInCubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n easeInExpo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n easeInQuad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n easeInQuart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n easeInQuint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n easeInSine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)',\n easeOutBack: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n easeOutCubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n easeOutQuad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n easeOutQuart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n easeOutQuint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n easeInOutCirc: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n easeInOutExpo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n easeInOutQuad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n easeInOutQuart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n easeInOutQuint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/* eslint-enable key-spacing */\n\nfunction getTimingFunction(functionName) {\n return functionsMap[functionName];\n}\n\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @deprecated - This will be deprecated in v5 in favor of `easeIn`, `easeOut`, `easeInOut`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': timingFunctions('easeInQuad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${timingFunctions('easeInQuad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\nfunction timingFunctions(timingFunction) {\n return getTimingFunction(timingFunction);\n}\n\nvar getBorderWidth = function getBorderWidth(pointingDirection, height, width) {\n var fullWidth = \"\" + width[0] + (width[1] || '');\n var halfWidth = \"\" + width[0] / 2 + (width[1] || '');\n var fullHeight = \"\" + height[0] + (height[1] || '');\n var halfHeight = \"\" + height[0] / 2 + (height[1] || '');\n switch (pointingDirection) {\n case 'top':\n return \"0 \" + halfWidth + \" \" + fullHeight + \" \" + halfWidth;\n case 'topLeft':\n return fullWidth + \" \" + fullHeight + \" 0 0\";\n case 'left':\n return halfHeight + \" \" + fullWidth + \" \" + halfHeight + \" 0\";\n case 'bottomLeft':\n return fullWidth + \" 0 0 \" + fullHeight;\n case 'bottom':\n return fullHeight + \" \" + halfWidth + \" 0 \" + halfWidth;\n case 'bottomRight':\n return \"0 0 \" + fullWidth + \" \" + fullHeight;\n case 'right':\n return halfHeight + \" 0 \" + halfHeight + \" \" + fullWidth;\n case 'topRight':\n default:\n return \"0 \" + fullWidth + \" \" + fullHeight + \" 0\";\n }\n};\nvar getBorderColor = function getBorderColor(pointingDirection, foregroundColor) {\n switch (pointingDirection) {\n case 'top':\n case 'bottomRight':\n return {\n borderBottomColor: foregroundColor\n };\n case 'right':\n case 'bottomLeft':\n return {\n borderLeftColor: foregroundColor\n };\n case 'bottom':\n case 'topLeft':\n return {\n borderTopColor: foregroundColor\n };\n case 'left':\n case 'topRight':\n return {\n borderRightColor: foregroundColor\n };\n default:\n throw new PolishedError(59);\n }\n};\n\n/**\n * CSS to represent triangle with any pointing direction with an optional background color.\n *\n * @example\n * // Styles as object usage\n *\n * const styles = {\n * ...triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })\n * }\n *\n *\n * // styled-components usage\n * const div = styled.div`\n * ${triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })}\n *\n *\n * // CSS as JS Output\n *\n * div: {\n * 'borderColor': 'transparent transparent transparent red',\n * 'borderStyle': 'solid',\n * 'borderWidth': '50px 0 50px 100px',\n * 'height': '0',\n * 'width': '0',\n * }\n */\nfunction triangle(_ref) {\n var pointingDirection = _ref.pointingDirection,\n height = _ref.height,\n width = _ref.width,\n foregroundColor = _ref.foregroundColor,\n _ref$backgroundColor = _ref.backgroundColor,\n backgroundColor = _ref$backgroundColor === void 0 ? 'transparent' : _ref$backgroundColor;\n var widthAndUnit = getValueAndUnit(width);\n var heightAndUnit = getValueAndUnit(height);\n if (isNaN(heightAndUnit[0]) || isNaN(widthAndUnit[0])) {\n throw new PolishedError(60);\n }\n return _extends({\n width: '0',\n height: '0',\n borderColor: backgroundColor\n }, getBorderColor(pointingDirection, foregroundColor), {\n borderStyle: 'solid',\n borderWidth: getBorderWidth(pointingDirection, heightAndUnit, widthAndUnit)\n });\n}\n\n/**\n * Provides an easy way to change the `wordWrap` property.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...wordWrap('break-word')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${wordWrap('break-word')}\n * `\n *\n * // CSS as JS Output\n *\n * const styles = {\n * overflowWrap: 'break-word',\n * wordWrap: 'break-word',\n * wordBreak: 'break-all',\n * }\n */\nfunction wordWrap(wrap) {\n if (wrap === void 0) {\n wrap = 'break-word';\n }\n var wordBreak = wrap === 'break-word' ? 'break-all' : wrap;\n return {\n overflowWrap: wrap,\n wordWrap: wrap,\n wordBreak: wordBreak\n };\n}\n\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n }\n\n // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n var huePrime = (hue % 360 + 360) % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\n\nvar namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n};\n\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\nfunction nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\n\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*\\)$/i;\nvar rgbaRegex = /^rgb(?:a)?\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\nvar hslaRegex = /^hsl(?:a)?\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\n\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\nfunction parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new PolishedError(3);\n }\n var normalizedColor = nameToHex(color);\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n var rgbMatched = rgbRegex.exec(normalizedColor);\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50));\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4]) > 1 ? parseFloat(\"\" + rgbaMatched[4]) / 100 : parseFloat(\"\" + rgbaMatched[4])\n };\n }\n var hslMatched = hslRegex.exec(normalizedColor);\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50));\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4]) > 1 ? parseFloat(\"\" + hslaMatched[4]) / 100 : parseFloat(\"\" + hslaMatched[4])\n };\n }\n throw new PolishedError(5);\n}\n\nfunction rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n case green:\n hue = (blue - red) / delta + 2;\n break;\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n hue *= 60;\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n}\n\n/**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\nfunction parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return rgbToHsl(parseToRgb(color));\n}\n\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\nvar reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n return value;\n};\nvar reduceHexValue$1 = reduceHexValue;\n\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\n\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\nfunction convertToHex(red, green, blue) {\n return reduceHexValue$1(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsl(359, 0.75, 0.4),\n * background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsl(359, 0.75, 0.4)};\n * background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#b3191c\";\n * background: \"#b3191c\";\n * }\n */\nfunction hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n throw new PolishedError(1);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsla(359, 0.75, 0.4, 0.7),\n * background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n * background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsla(359, 0.75, 0.4, 0.7)};\n * background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n * background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"#b3191c\";\n * }\n */\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n throw new PolishedError(2);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgb(255, 205, 100),\n * background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgb(255, 205, 100)};\n * background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffcd64\";\n * background: \"#ffcd64\";\n * }\n */\nfunction rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return reduceHexValue$1(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n return reduceHexValue$1(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n throw new PolishedError(6);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgba(255, 205, 100, 0.7),\n * background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n * background: rgba(255, 205, 100, 1),\n * background: rgba('#ffffff', 0.4),\n * background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgba(255, 205, 100, 0.7)};\n * background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n * background: ${rgba(255, 205, 100, 1)};\n * background: ${rgba('#ffffff', 0.4)};\n * background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"#ffcd64\";\n * background: \"rgba(255,255,255,0.4)\";\n * background: \"rgba(0,0,0,0.7)\";\n * }\n */\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n throw new PolishedError(7);\n}\n\nvar isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\nvar isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\nvar isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\nvar isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\nfunction toColorString(color) {\n if (typeof color !== 'object') throw new PolishedError(8);\n if (isRgba(color)) return rgba(color);\n if (isRgb(color)) return rgb(color);\n if (isHsla(color)) return hsla(color);\n if (isHsl(color)) return hsl(color);\n throw new PolishedError(8);\n}\n\n// Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\nfunction curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n}\n\n// eslint-disable-next-line no-redeclare\nfunction curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n}\n\n/**\n * Changes the hue of the color. Hue is a number between 0 to 360. The first\n * argument for adjustHue is the amount of degrees the color is rotated around\n * the color wheel, always producing a positive hue value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: adjustHue(180, '#448'),\n * background: adjustHue('180', 'rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${adjustHue(180, '#448')};\n * background: ${adjustHue('180', 'rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#888844\";\n * background: \"rgba(136,136,68,0.7)\";\n * }\n */\nfunction adjustHue(degree, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: hslColor.hue + parseFloat(degree)\n }));\n}\n\n// prettier-ignore\nvar curriedAdjustHue = curry /* :: */(adjustHue);\nvar curriedAdjustHue$1 = curriedAdjustHue;\n\n/**\n * Returns the complement of the provided color. This is identical to adjustHue(180, ).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: complement('#448'),\n * background: complement('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${complement('#448')};\n * background: ${complement('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#884\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\nfunction complement(color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: (hslColor.hue + 180) % 360\n }));\n}\n\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\nfunction darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n}\n\n// prettier-ignore\nvar curriedDarken = curry /* :: */(darken);\nvar curriedDarken$1 = curriedDarken;\n\n/**\n * Decreases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the desaturate function is the amount by how much the color\n * intensity should be decreased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: desaturate(0.2, '#CCCD64'),\n * background: desaturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${desaturate(0.2, '#CCCD64')};\n * background: ${desaturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#b8b979\";\n * background: \"rgba(184,185,121,0.7)\";\n * }\n */\nfunction desaturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation - parseFloat(amount))\n }));\n}\n\n// prettier-ignore\nvar curriedDesaturate = curry /* :: */(desaturate);\nvar curriedDesaturate$1 = curriedDesaturate;\n\n/**\n * Returns a number (float) representing the luminance of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff',\n * background: getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)',\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff'};\n * background: ${getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)'};\n *\n * // CSS in JS Output\n *\n * div {\n * background: \"#CCCD64\";\n * background: \"rgba(58, 133, 255, 1)\";\n * }\n */\nfunction getLuminance(color) {\n if (color === 'transparent') return 0;\n var rgbColor = parseToRgb(color);\n var _Object$keys$map = Object.keys(rgbColor).map(function (key) {\n var channel = rgbColor[key] / 255;\n return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n }),\n r = _Object$keys$map[0],\n g = _Object$keys$map[1],\n b = _Object$keys$map[2];\n return parseFloat((0.2126 * r + 0.7152 * g + 0.0722 * b).toFixed(3));\n}\n\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n *\n * @example\n * const contrastRatio = getContrast('#444', '#fff');\n */\nfunction getContrast(color1, color2) {\n var luminance1 = getLuminance(color1);\n var luminance2 = getLuminance(color2);\n return parseFloat((luminance1 > luminance2 ? (luminance1 + 0.05) / (luminance2 + 0.05) : (luminance2 + 0.05) / (luminance1 + 0.05)).toFixed(2));\n}\n\n/**\n * Converts the color to a grayscale, by reducing its saturation to 0.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: grayscale('#CCCD64'),\n * background: grayscale('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${grayscale('#CCCD64')};\n * background: ${grayscale('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#999\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\nfunction grayscale(color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: 0\n }));\n}\n\n/**\n * Converts a HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\nfunction hslToColorString(color) {\n if (typeof color === 'object' && typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return hsla({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness,\n alpha: color.alpha\n });\n }\n return hsl({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness\n });\n }\n throw new PolishedError(45);\n}\n\n/**\n * Inverts the red, green and blue values of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: invert('#CCCD64'),\n * background: invert('rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${invert('#CCCD64')};\n * background: ${invert('rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#33329b\";\n * background: \"rgba(154,155,50,0.7)\";\n * }\n */\nfunction invert(color) {\n if (color === 'transparent') return color;\n // parse color string to rgb\n var value = parseToRgb(color);\n return toColorString(_extends({}, value, {\n red: 255 - value.red,\n green: 255 - value.green,\n blue: 255 - value.blue\n }));\n}\n\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\nfunction lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n}\n\n// prettier-ignore\nvar curriedLighten = curry /* :: */(lighten);\nvar curriedLighten$1 = curriedLighten;\n\n/**\n * Determines which contrast guidelines have been met for two colors.\n * Based on the [contrast calculations recommended by W3](https://www.w3.org/WAI/WCAG21/Understanding/contrast-enhanced.html).\n *\n * @example\n * const scores = meetsContrastGuidelines('#444', '#fff');\n */\nfunction meetsContrastGuidelines(color1, color2) {\n var contrastRatio = getContrast(color1, color2);\n return {\n AA: contrastRatio >= 4.5,\n AALarge: contrastRatio >= 3,\n AAA: contrastRatio >= 7,\n AAALarge: contrastRatio >= 4.5\n };\n}\n\n/**\n * Mixes the two provided colors together by calculating the average of each of the RGB components weighted to the first color by the provided weight.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: mix(0.5, '#f00', '#00f')\n * background: mix(0.25, '#f00', '#00f')\n * background: mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${mix(0.5, '#f00', '#00f')};\n * background: ${mix(0.25, '#f00', '#00f')};\n * background: ${mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#7f007f\";\n * background: \"#3f00bf\";\n * background: \"rgba(63, 0, 191, 0.75)\";\n * }\n */\nfunction mix(weight, color, otherColor) {\n if (color === 'transparent') return otherColor;\n if (otherColor === 'transparent') return color;\n if (weight === 0) return otherColor;\n var parsedColor1 = parseToRgb(color);\n var color1 = _extends({}, parsedColor1, {\n alpha: typeof parsedColor1.alpha === 'number' ? parsedColor1.alpha : 1\n });\n var parsedColor2 = parseToRgb(otherColor);\n var color2 = _extends({}, parsedColor2, {\n alpha: typeof parsedColor2.alpha === 'number' ? parsedColor2.alpha : 1\n });\n\n // The formula is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n var alphaDelta = color1.alpha - color2.alpha;\n var x = parseFloat(weight) * 2 - 1;\n var y = x * alphaDelta === -1 ? x : x + alphaDelta;\n var z = 1 + x * alphaDelta;\n var weight1 = (y / z + 1) / 2.0;\n var weight2 = 1 - weight1;\n var mixedColor = {\n red: Math.floor(color1.red * weight1 + color2.red * weight2),\n green: Math.floor(color1.green * weight1 + color2.green * weight2),\n blue: Math.floor(color1.blue * weight1 + color2.blue * weight2),\n alpha: color1.alpha * parseFloat(weight) + color2.alpha * (1 - parseFloat(weight))\n };\n return rgba(mixedColor);\n}\n\n// prettier-ignore\nvar curriedMix = curry /* :: */(mix);\nvar mix$1 = curriedMix;\n\n/**\n * Increases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: opacify(0.1, 'rgba(255, 255, 255, 0.9)');\n * background: opacify(0.2, 'hsla(0, 0%, 100%, 0.5)'),\n * background: opacify('0.5', 'rgba(255, 0, 0, 0.2)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${opacify(0.1, 'rgba(255, 255, 255, 0.9)')};\n * background: ${opacify(0.2, 'hsla(0, 0%, 100%, 0.5)')},\n * background: ${opacify('0.5', 'rgba(255, 0, 0, 0.2)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#fff\";\n * background: \"rgba(255,255,255,0.7)\";\n * background: \"rgba(255,0,0,0.7)\";\n * }\n */\nfunction opacify(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100)\n });\n return rgba(colorWithAlpha);\n}\n\n// prettier-ignore\nvar curriedOpacify = curry /* :: */(opacify);\nvar curriedOpacify$1 = curriedOpacify;\n\nvar defaultReturnIfLightColor = '#000';\nvar defaultReturnIfDarkColor = '#fff';\n\n/**\n * Returns black or white (or optional passed colors) for best\n * contrast depending on the luminosity of the given color.\n * When passing custom return colors, strict mode ensures that the\n * return color always meets or exceeds WCAG level AA or greater. If this test\n * fails, the default return color (black or white) is returned in place of the\n * custom return color. You can optionally turn off strict mode.\n *\n * Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * color: readableColor('#000'),\n * color: readableColor('black', '#001', '#ff8'),\n * color: readableColor('white', '#001', '#ff8'),\n * color: readableColor('red', '#333', '#ddd', true)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * color: ${readableColor('#000')};\n * color: ${readableColor('black', '#001', '#ff8')};\n * color: ${readableColor('white', '#001', '#ff8')};\n * color: ${readableColor('red', '#333', '#ddd', true)};\n * `\n *\n * // CSS in JS Output\n * element {\n * color: \"#fff\";\n * color: \"#ff8\";\n * color: \"#001\";\n * color: \"#000\";\n * }\n */\nfunction readableColor(color, returnIfLightColor, returnIfDarkColor, strict) {\n if (returnIfLightColor === void 0) {\n returnIfLightColor = defaultReturnIfLightColor;\n }\n if (returnIfDarkColor === void 0) {\n returnIfDarkColor = defaultReturnIfDarkColor;\n }\n if (strict === void 0) {\n strict = true;\n }\n var isColorLight = getLuminance(color) > 0.179;\n var preferredReturnColor = isColorLight ? returnIfLightColor : returnIfDarkColor;\n if (!strict || getContrast(color, preferredReturnColor) >= 4.5) {\n return preferredReturnColor;\n }\n return isColorLight ? defaultReturnIfLightColor : defaultReturnIfDarkColor;\n}\n\n/**\n * Converts a RgbColor or RgbaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb` or `rgba`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgbToColorString({ red: 255, green: 205, blue: 100 }),\n * background: rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * }\n */\nfunction rgbToColorString(color) {\n if (typeof color === 'object' && typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number') {\n if (typeof color.alpha === 'number') {\n return rgba({\n red: color.red,\n green: color.green,\n blue: color.blue,\n alpha: color.alpha\n });\n }\n return rgb({\n red: color.red,\n green: color.green,\n blue: color.blue\n });\n }\n throw new PolishedError(46);\n}\n\n/**\n * Increases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the saturate function is the amount by how much the color\n * intensity should be increased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: saturate(0.2, '#CCCD64'),\n * background: saturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${saturate(0.2, '#FFCD64')};\n * background: ${saturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e0e250\";\n * background: \"rgba(224,226,80,0.7)\";\n * }\n */\nfunction saturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation + parseFloat(amount))\n }));\n}\n\n// prettier-ignore\nvar curriedSaturate = curry /* :: */(saturate);\nvar curriedSaturate$1 = curriedSaturate;\n\n/**\n * Sets the hue of a color to the provided value. The hue range can be\n * from 0 and 359.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setHue(42, '#CCCD64'),\n * background: setHue('244', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setHue(42, '#CCCD64')};\n * background: ${setHue('244', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#cdae64\";\n * background: \"rgba(107,100,205,0.7)\";\n * }\n */\nfunction setHue(hue, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n hue: parseFloat(hue)\n }));\n}\n\n// prettier-ignore\nvar curriedSetHue = curry /* :: */(setHue);\nvar curriedSetHue$1 = curriedSetHue;\n\n/**\n * Sets the lightness of a color to the provided value. The lightness range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setLightness(0.2, '#CCCD64'),\n * background: setLightness('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setLightness(0.2, '#CCCD64')};\n * background: ${setLightness('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#4d4d19\";\n * background: \"rgba(223,224,159,0.7)\";\n * }\n */\nfunction setLightness(lightness, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n lightness: parseFloat(lightness)\n }));\n}\n\n// prettier-ignore\nvar curriedSetLightness = curry /* :: */(setLightness);\nvar curriedSetLightness$1 = curriedSetLightness;\n\n/**\n * Sets the saturation of a color to the provided value. The saturation range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setSaturation(0.2, '#CCCD64'),\n * background: setSaturation('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setSaturation(0.2, '#CCCD64')};\n * background: ${setSaturation('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#adad84\";\n * background: \"rgba(228,229,76,0.7)\";\n * }\n */\nfunction setSaturation(saturation, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: parseFloat(saturation)\n }));\n}\n\n// prettier-ignore\nvar curriedSetSaturation = curry /* :: */(setSaturation);\nvar curriedSetSaturation$1 = curriedSetSaturation;\n\n/**\n * Shades a color by mixing it with black. `shade` can produce\n * hue shifts, where as `darken` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: shade(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${shade(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#00003f\";\n * }\n */\n\nfunction shade(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(0, 0, 0)', color);\n}\n\n// prettier-ignore\nvar curriedShade = curry /* :: */(shade);\nvar curriedShade$1 = curriedShade;\n\n/**\n * Tints a color by mixing it with white. `tint` can produce\n * hue shifts, where as `lighten` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: tint(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${tint(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#bfbfff\";\n * }\n */\n\nfunction tint(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(255, 255, 255)', color);\n}\n\n// prettier-ignore\nvar curriedTint = curry /* :: */(tint);\nvar curriedTint$1 = curriedTint;\n\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: transparentize(0.1, '#fff'),\n * background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n * background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${transparentize(0.1, '#fff')};\n * background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')};\n * background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,255,255,0.9)\";\n * background: \"rgba(255,255,255,0.8)\";\n * background: \"rgba(255,0,0,0.3)\";\n * }\n */\nfunction transparentize(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100)\n });\n return rgba(colorWithAlpha);\n}\n\n// prettier-ignore\nvar curriedTransparentize = curry /* :: */(transparentize);\nvar curriedTransparentize$1 = curriedTransparentize;\n\n/**\n * Shorthand for easily setting the animation property. Allows either multiple arrays with animations\n * or a single animation spread over the arguments.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out, colorchange 2s'\n * }\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation('rotate', '1s', 'ease-in-out')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation('rotate', '1s', 'ease-in-out')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out'\n * }\n */\nfunction animation() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n // Allow single or multiple animations passed\n var multiMode = Array.isArray(args[0]);\n if (!multiMode && args.length > 8) {\n throw new PolishedError(64);\n }\n var code = args.map(function (arg) {\n if (multiMode && !Array.isArray(arg) || !multiMode && Array.isArray(arg)) {\n throw new PolishedError(65);\n }\n if (Array.isArray(arg) && arg.length > 8) {\n throw new PolishedError(66);\n }\n return Array.isArray(arg) ? arg.join(' ') : arg;\n }).join(', ');\n return {\n animation: code\n };\n}\n\n/**\n * Shorthand that accepts any number of backgroundImage values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'backgroundImage': 'url(\"/image/background.jpg\"), linear-gradient(red, green)'\n * }\n */\nfunction backgroundImages() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n return {\n backgroundImage: properties.join(', ')\n };\n}\n\n/**\n * Shorthand that accepts any number of background values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'background': 'url(\"/image/background.jpg\"), linear-gradient(red, green), center no-repeat'\n * }\n */\nfunction backgrounds() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n return {\n background: properties.join(', ')\n };\n}\n\nvar sideMap = ['top', 'right', 'bottom', 'left'];\n\n/**\n * Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...border('1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderColor': 'red',\n * 'borderStyle': 'solid',\n * 'borderWidth': `1px`,\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...border('top', '1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('top', '1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderTopStyle': 'solid',\n * 'borderTopWidth': `1px`,\n * }\n */\n\nfunction border(sideKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {\n var _ref;\n return _ref = {}, _ref[\"border\" + capitalizeString(sideKeyword) + \"Width\"] = values[0], _ref[\"border\" + capitalizeString(sideKeyword) + \"Style\"] = values[1], _ref[\"border\" + capitalizeString(sideKeyword) + \"Color\"] = values[2], _ref;\n } else {\n values.unshift(sideKeyword);\n return {\n borderWidth: values[0],\n borderStyle: values[1],\n borderColor: values[2]\n };\n }\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderColor('red', 'green', 'blue', 'yellow')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderColor('red', 'green', 'blue', 'yellow')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderRightColor': 'green',\n * 'borderBottomColor': 'blue',\n * 'borderLeftColor': 'yellow'\n * }\n */\nfunction borderColor() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return directionalProperty.apply(void 0, ['borderColor'].concat(values));\n}\n\n/**\n * Shorthand that accepts a value for side and a value for radius and applies the radius value to both corners of the side.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderRadius('top', '5px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderRadius('top', '5px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopRightRadius': '5px',\n * 'borderTopLeftRadius': '5px',\n * }\n */\nfunction borderRadius(side, radius) {\n var uppercaseSide = capitalizeString(side);\n if (!radius && radius !== 0) {\n throw new PolishedError(62);\n }\n if (uppercaseSide === 'Top' || uppercaseSide === 'Bottom') {\n var _ref;\n return _ref = {}, _ref[\"border\" + uppercaseSide + \"RightRadius\"] = radius, _ref[\"border\" + uppercaseSide + \"LeftRadius\"] = radius, _ref;\n }\n if (uppercaseSide === 'Left' || uppercaseSide === 'Right') {\n var _ref2;\n return _ref2 = {}, _ref2[\"borderTop\" + uppercaseSide + \"Radius\"] = radius, _ref2[\"borderBottom\" + uppercaseSide + \"Radius\"] = radius, _ref2;\n }\n throw new PolishedError(63);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderStyle('solid', 'dashed', 'dotted', 'double')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderStyle('solid', 'dashed', 'dotted', 'double')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopStyle': 'solid',\n * 'borderRightStyle': 'dashed',\n * 'borderBottomStyle': 'dotted',\n * 'borderLeftStyle': 'double'\n * }\n */\nfunction borderStyle() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return directionalProperty.apply(void 0, ['borderStyle'].concat(values));\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderWidth('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderWidth('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopWidth': '12px',\n * 'borderRightWidth': '24px',\n * 'borderBottomWidth': '36px',\n * 'borderLeftWidth': '48px'\n * }\n */\nfunction borderWidth() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return directionalProperty.apply(void 0, ['borderWidth'].concat(values));\n}\n\nfunction generateSelectors(template, state) {\n var stateSuffix = state ? \":\" + state : '';\n return template(stateSuffix);\n}\n\n/**\n * Function helper that adds an array of states to a template of selectors. Used in textInputs and buttons.\n * @private\n */\nfunction statefulSelectors(states, template, stateMap) {\n if (!template) throw new PolishedError(67);\n if (states.length === 0) return generateSelectors(template, null);\n var selectors = [];\n for (var i = 0; i < states.length; i += 1) {\n if (stateMap && stateMap.indexOf(states[i]) < 0) {\n throw new PolishedError(68);\n }\n selectors.push(generateSelectors(template, states[i]));\n }\n selectors = selectors.join(',');\n return selectors;\n}\n\nvar stateMap$1 = [undefined, null, 'active', 'focus', 'hover'];\nfunction template$1(state) {\n return \"button\" + state + \",\\n input[type=\\\"button\\\"]\" + state + \",\\n input[type=\\\"reset\\\"]\" + state + \",\\n input[type=\\\"submit\\\"]\" + state;\n}\n\n/**\n * Populates selectors that target all buttons. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [buttons('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${buttons('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'button:active,\n * 'input[type=\"button\"]:active,\n * 'input[type=\\\"reset\\\"]:active,\n * 'input[type=\\\"submit\\\"]:active: {\n * 'border': 'none'\n * }\n */\nfunction buttons() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n return statefulSelectors(states, template$1, stateMap$1);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...margin('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${margin('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'marginTop': '12px',\n * 'marginRight': '24px',\n * 'marginBottom': '36px',\n * 'marginLeft': '48px'\n * }\n */\nfunction margin() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return directionalProperty.apply(void 0, ['margin'].concat(values));\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...padding('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${padding('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\nfunction padding() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return directionalProperty.apply(void 0, ['padding'].concat(values));\n}\n\nvar positionMap = ['absolute', 'fixed', 'relative', 'static', 'sticky'];\n\n/**\n * Shorthand accepts up to five values, including null to skip a value, and maps them to their respective directions. The first value can optionally be a position keyword.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...position('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...position('absolute', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('absolute', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'position': 'absolute',\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n */\nfunction position(firstValue) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n if (positionMap.indexOf(firstValue) >= 0 && firstValue) {\n return _extends({}, directionalProperty.apply(void 0, [''].concat(values)), {\n position: firstValue\n });\n } else {\n return directionalProperty.apply(void 0, ['', firstValue].concat(values));\n }\n}\n\n/**\n * Shorthand to set the height and width properties in a single statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...size('300px', '250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${size('300px', '250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'height': '300px',\n * 'width': '250px',\n * }\n */\nfunction size(height, width) {\n if (width === void 0) {\n width = height;\n }\n return {\n height: height,\n width: width\n };\n}\n\nvar stateMap = [undefined, null, 'active', 'focus', 'hover'];\nfunction template(state) {\n return \"input[type=\\\"color\\\"]\" + state + \",\\n input[type=\\\"date\\\"]\" + state + \",\\n input[type=\\\"datetime\\\"]\" + state + \",\\n input[type=\\\"datetime-local\\\"]\" + state + \",\\n input[type=\\\"email\\\"]\" + state + \",\\n input[type=\\\"month\\\"]\" + state + \",\\n input[type=\\\"number\\\"]\" + state + \",\\n input[type=\\\"password\\\"]\" + state + \",\\n input[type=\\\"search\\\"]\" + state + \",\\n input[type=\\\"tel\\\"]\" + state + \",\\n input[type=\\\"text\\\"]\" + state + \",\\n input[type=\\\"time\\\"]\" + state + \",\\n input[type=\\\"url\\\"]\" + state + \",\\n input[type=\\\"week\\\"]\" + state + \",\\n input:not([type])\" + state + \",\\n textarea\" + state;\n}\n\n/**\n * Populates selectors that target all text inputs. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [textInputs('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${textInputs('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'input[type=\"color\"]:active,\n * input[type=\"date\"]:active,\n * input[type=\"datetime\"]:active,\n * input[type=\"datetime-local\"]:active,\n * input[type=\"email\"]:active,\n * input[type=\"month\"]:active,\n * input[type=\"number\"]:active,\n * input[type=\"password\"]:active,\n * input[type=\"search\"]:active,\n * input[type=\"tel\"]:active,\n * input[type=\"text\"]:active,\n * input[type=\"time\"]:active,\n * input[type=\"url\"]:active,\n * input[type=\"week\"]:active,\n * input:not([type]):active,\n * textarea:active': {\n * 'border': 'none'\n * }\n */\nfunction textInputs() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n return statefulSelectors(states, template, stateMap);\n}\n\n/**\n * Accepts any number of transition values as parameters for creating a single transition statement. You may also pass an array of properties as the first parameter that you would like to apply the same transition values to (second parameter).\n * @example\n * // Styles as object usage\n * const styles = {\n * ...transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s'),\n * ...transitions(['color', 'background-color'], '2.0s ease-in 2s')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s')};\n * ${transitions(['color', 'background-color'], '2.0s ease-in 2s'),};\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'transition': 'opacity 1.0s ease-in 0s, width 2.0s ease-in 2s'\n * 'transition': 'color 2.0s ease-in 2s, background-color 2.0s ease-in 2s',\n * }\n */\nfunction transitions() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n if (Array.isArray(properties[0]) && properties.length === 2) {\n var value = properties[1];\n if (typeof value !== 'string') {\n throw new PolishedError(61);\n }\n var transitionsString = properties[0].map(function (property) {\n return property + \" \" + value;\n }).join(', ');\n return {\n transition: transitionsString\n };\n } else {\n return {\n transition: properties.join(', ')\n };\n }\n}\n\nexport { curriedAdjustHue$1 as adjustHue, animation, backgroundImages, backgrounds, between, border, borderColor, borderRadius, borderStyle, borderWidth, buttons, clearFix, complement, cover, cssVar, curriedDarken$1 as darken, curriedDesaturate$1 as desaturate, directionalProperty, easeIn, easeInOut, easeOut, ellipsis, em$1 as em, fluidRange, fontFace, getContrast, getLuminance, getValueAndUnit, grayscale, hiDPI, hideText, hideVisually, hsl, hslToColorString, hsla, important, invert, curriedLighten$1 as lighten, linearGradient, margin, math, meetsContrastGuidelines, mix$1 as mix, modularScale, normalize, curriedOpacify$1 as opacify, padding, parseToHsl, parseToRgb, position, radialGradient, readableColor, rem$1 as rem, remToPx, retinaImage, rgb, rgbToColorString, rgba, curriedSaturate$1 as saturate, curriedSetHue$1 as setHue, curriedSetLightness$1 as setLightness, curriedSetSaturation$1 as setSaturation, curriedShade$1 as shade, size, stripUnit, textInputs, timingFunctions, curriedTint$1 as tint, toColorString, transitions, curriedTransparentize$1 as transparentize, triangle, wordWrap };\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import styled from \"styled-components\";\nimport { lighten } from \"polished\";\nimport { Check, Minus } from \"@/Icons\";\n\nexport const NativeCheckboxStyle = styled.input`\n opacity: 0;\n position: absolute;\n`;\n\nexport const FakeCheckboxStyle = styled.span<{\n $disabled: boolean;\n $platform: string;\n}>`\n background-color: ${({ theme, $platform }) =>\n theme[$platform].radio.background};\n border-radius: 0.125rem;\n box-sizing: border-box;\n cursor: ${({ $disabled }) => ($disabled ? \"not-allowed\" : \"pointer\")};\n height: 1.25rem;\n left: 0;\n position: absolute;\n top: 0;\n width: 1.25rem;\n\n &:focus {\n box-shadow: ${({ $disabled }) =>\n $disabled ? \"none\" : \"0 0 0 0.2rem rgba(229, 103, 177, 0.25)\"};\n outline: transparent;\n ${({ $disabled }) => $disabled && \"outline: none\"}\n transition: box-shadow 0.25s ease-in-out;\n }\n`;\n\nexport const NormalFakeCbStyle = styled(FakeCheckboxStyle)`\n cursor: pointer;\n border: 0.125rem solid\n ${({ theme, $platform }) => theme[$platform].checkbox.border};\n\n &:hover {\n border-color: ${({ theme, $platform }) =>\n lighten(0.45, theme[$platform].checkbox[\"border-color\"])};\n\n &::before {\n position: absolute;\n display: block;\n content: \"\";\n inset: 0;\n border: 1px solid\n ${({ theme, $platform }) => theme[$platform].checkbox[\"border-color\"]};\n }\n }\n`;\n\nexport const CheckIconStyle = styled(Check)`\n width: 1.125rem;\n height: 1.125rem;\n left: -1px;\n opacity: 0;\n position: absolute;\n top: -1px;\n`;\n\nexport const MinusIconStyle = styled(Minus)`\n width: 1.125rem;\n height: 1.125rem;\n left: -1px;\n opacity: 0;\n position: absolute;\n top: -1px;\n`;\n\nexport const DisabledFakeCbStyle = styled(FakeCheckboxStyle)`\n background-color: ${({ theme, $platform }) =>\n theme[$platform].radio.disabled};\n border: 1px solid ${({ theme, $platform }) => theme[$platform].radio.border};\n`;\n\nexport const CheckboxWrapper = styled.label<{ $platform: string }>`\n display: flex;\n padding-left: 1.85rem;\n position: relative;\n\n ${NativeCheckboxStyle}:checked ~ ${NormalFakeCbStyle} {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].checkbox[\"border-color\"]};\n border: 2px solid\n ${({ theme, $platform }) => theme[$platform].checkbox[\"border-color\"]};\n\n &:hover {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].checkbox[\"border-hover\"]};\n border-color: ${({ theme, $platform }) =>\n theme[$platform].checkbox[\"border-hover\"]};\n\n &::before {\n border-color: ${({ theme, $platform }) =>\n theme[$platform].checkbox[\"border-hover\"]};\n }\n }\n\n ${CheckIconStyle} {\n opacity: 1;\n }\n }\n\n ${NativeCheckboxStyle}:checked ~ ${DisabledFakeCbStyle} {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].checkbox.border};\n border: 2px solid\n ${({ theme, $platform }) => theme[$platform].checkbox.border};\n\n ${CheckIconStyle} {\n opacity: 0.5;\n }\n }\n\n ${NativeCheckboxStyle}:indeterminate ~ ${NormalFakeCbStyle} {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].checkbox[\"border-color\"]};\n border: 2px solid\n ${({ theme, $platform }) => theme[$platform].checkbox[\"border-color\"]};\n\n &:hover {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].checkbox[\"border-hover\"]};\n border-color: ${({ theme, $platform }) =>\n theme[$platform].checkbox[\"border-hover\"]};\n\n &::before {\n border-color: ${({ theme, $platform }) =>\n theme[$platform].checkbox[\"border-hover\"]};\n }\n }\n\n ${MinusIconStyle} {\n opacity: 1;\n }\n }\n\n ${NativeCheckboxStyle}:indeterminate ~ ${DisabledFakeCbStyle} {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].checkbox.border};\n border: 2px solid\n ${({ theme, $platform }) => theme[$platform].checkbox.border};\n\n ${MinusIconStyle} {\n opacity: 0.5;\n }\n }\n`;\n","const SvgMinus = (props: { [x: string]: string | number | object }) => {\n return (\n \n \n \n );\n};\n\nexport default SvgMinus;\n","import { useId, forwardRef } from \"react\";\nimport classNames from \"classnames\";\n\n// Helpers\nimport { CheckboxProps } from \"./Checkbox.types\";\n\n// Styles\nimport {\n NativeCheckboxStyle,\n NormalFakeCbStyle,\n CheckIconStyle,\n MinusIconStyle,\n DisabledFakeCbStyle,\n CheckboxWrapper,\n} from \"./Checkbox.styles\";\n\n// Theme Provider\nimport { Theme, platformThemes } from \"@/theme\";\n\nexport const Checkbox = forwardRef(\n (props, ref) => {\n const {\n className,\n isChecked,\n isDisabled = false,\n label,\n mode = \"checked\",\n name,\n platform = \"octopus-online\",\n onChange,\n ...rest\n } = props;\n\n const FakeCheckbox = isDisabled ? DisabledFakeCbStyle : NormalFakeCbStyle;\n\n const checkboxClasses = classNames(\"ds-checkbox\", className);\n const checkboxId = useId();\n const checkMode = mode === \"checked\" ? isChecked : \"mixed\";\n return (\n \n \n {label}\n \n \n \n \n \n \n \n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n","import styled, { css } from \"styled-components\";\n\nimport { TSizing } from \"@/types\";\n\nconst spacing = {\n sm: \"0.5rem 0.75rem\",\n md: \"1rem\",\n lg: \"1.5rem\",\n xl: \"1.75rem\",\n xxl: \"2rem\",\n};\n\nconst borderRadius = {\n xs: \"0.125rem\",\n sm: \"0.25rem\",\n md: \"0.5rem\",\n lg: \"0.75rem\",\n xl: \"1rem\",\n xxl: \"1.25rem\",\n};\n\nconst marginBottom = {\n xs: \"0.25rem\",\n sm: \"0.5rem\",\n md: \"1rem\",\n lg: \"1.5rem\",\n xl: \"2rem\",\n xxl: \"2.5rem\",\n};\n\nexport const Wrapper = styled.li<{\n $platform: string;\n $borderRadius?: TSizing;\n}>`\n display: block;\n border-radius: ${({ $borderRadius }) => borderRadius[$borderRadius!]};\n\n &:focus {\n outline-color: ${({ theme, $platform }) =>\n theme[$platform!].input.focus.outline};\n }\n`;\n\nexport const ListItemWrapper = styled.div<{\n $alternateBackground?: boolean;\n $borderRadius?: TSizing;\n $index?: number;\n $isSelected?: boolean;\n $marginBottom?: TSizing;\n $platform?: string;\n $spacing?: TSizing;\n $hasClickHandler?: boolean;\n $showHoverBorder?: boolean;\n $showItemSeparation?: boolean;\n}>`\n padding: ${({ $spacing }) => spacing[$spacing!]};\n border-width: 1px;\n border-style: solid;\n border-color: #fff;\n border-radius: ${({ $borderRadius }) => borderRadius[$borderRadius!]};\n outline-color: transparent;\n ${({ $hasClickHandler }) => $hasClickHandler && \"cursor: pointer;\"}\n background-color: ${({\n $alternateBackground,\n $index,\n $showItemSeparation,\n $isSelected,\n $platform,\n theme,\n }) =>\n $isSelected ||\n ($alternateBackground && !$showItemSeparation && $index! % 2 === 1)\n ? `${theme[$platform!].list.item.selected}`\n : \"transparent\"};\n\n ${({ $showItemSeparation, $marginBottom }) =>\n $showItemSeparation &&\n css`\n margin-bottom: ${marginBottom[$marginBottom!]};\n box-shadow: 0 0 8px 0 rgba(27, 7, 58, 10%);\n `}\n &:hover {\n border-color: ${({\n $platform,\n $showHoverBorder,\n theme,\n $hasClickHandler,\n $showItemSeparation,\n }) =>\n !$hasClickHandler && $showItemSeparation && $showHoverBorder\n ? theme[$platform!].list.item.hover\n : \"transparent\"};\n transition: border-color 0.35s ease-in;\n background-color: ${({\n $platform,\n theme,\n $isSelected,\n $hasClickHandler,\n $showItemSeparation,\n }) =>\n $isSelected || ($hasClickHandler && !$showItemSeparation)\n ? theme[$platform!].list.item.selected\n : \"initial\"};\n }\n`;\n\nexport const ListContent = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n margin-top: 0.25rem;\n`;\n\nexport const SelectedItemsHeader = styled.span`\n padding: 0.5rem 0.75rem;\n display: block;\n`;\n","import { forwardRef, KeyboardEvent } from \"react\";\nimport dayjs from \"dayjs\";\n\n// Components\nimport { Divider } from \"@/components/Shared/Divider/Divider\";\nimport { Checkbox } from \"@/components/Inputs/Checkbox/Checkbox\";\n\nimport type { ListItemProps } from \"./ListItem.types\";\nimport { ListItemWrapper, ListContent, Wrapper } from \"./ListItem.styles\";\n\nexport const ListItem = forwardRef(\n (\n {\n alternateBackground = false,\n borderRadius = \"md\",\n index,\n item,\n handleItemSelect,\n handleOnItemClick,\n leftDisplayProperties,\n marginBottom,\n totalItems,\n platform = \"octopus-online\",\n rightDisplayProperties,\n showHoverBorder,\n showItemSeparation,\n isSelected,\n spacing = \"md\",\n showCheckbox = false,\n showDivider = false,\n dateProperties = [],\n dateFormat = \"YYYY-MM-DD\",\n ...rest\n },\n ref\n ) => {\n const onItemSelect = (event) => {\n if (handleItemSelect) {\n handleItemSelect({\n event,\n item,\n index,\n });\n }\n };\n const onItemClicked = () => {\n if (handleOnItemClick) {\n handleOnItemClick(item, index);\n }\n };\n\n const handleItemSelectOnEnter = ({ key }: KeyboardEvent) => {\n if (key === \"Enter\") {\n onItemSelect(key);\n onItemClicked();\n }\n };\n\n const formatProperty = (prop: string, value: any) => {\n if (dateProperties.includes(prop)) {\n return dayjs(value).format(dateFormat);\n }\n return value;\n };\n\n const renderProperties = (properties: string[], item) =>\n properties.map((prop) => (\n
\n {showCheckbox ? (\n \n ) : (\n {formatProperty(prop, item[prop])}\n )}\n
\n ));\n\n return (\n {\n if (showCheckbox) {\n onItemSelect(event);\n } else {\n onItemClicked();\n }\n }}\n onKeyDown={handleItemSelectOnEnter}\n >\n \n \n
\n {leftDisplayProperties &&\n renderProperties(leftDisplayProperties, item)}\n
\n {rightDisplayProperties && (\n
\n {renderProperties(rightDisplayProperties, item)}\n
\n )}\n
\n \n {showDivider && index < totalItems! - 1 && (\n \n )}\n \n );\n }\n);\n\nListItem.displayName = \"ListItem\";\n","import styled, { css } from \"styled-components\";\n\nexport const Wrapper = styled.div<{\n $cs?: any;\n $platform: string;\n $hasClickHandler?: boolean;\n $allowScroll?: boolean;\n $showItemSeparation?: boolean;\n $maxHeight?: number | null;\n $showOptionsListAbove?: boolean;\n}>`\n box-sizing: border-box;\n ${({ $showItemSeparation, $maxHeight, $platform, theme }) =>\n !$showItemSeparation &&\n css`\n margin-top: 0.25rem;\n background-color: #fff;\n border-radius: 0.75rem;\n box-shadow: ${theme[$platform].list.boxShadow};\n border: 1px solid ${theme[$platform].list.border};\n padding: 0.25rem;\n max-height: ${$maxHeight ? `${$maxHeight}rem` : \"none\"};\n `}\n\n ${({ $allowScroll }) => $allowScroll && \"overflow-y: auto;\"}\n\n .ds-search-field-link {\n a {\n text-align: center;\n }\n }\n\n .ds-list-divider {\n margin: 0;\n }\n\n &:focus {\n border-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.focus.outline};\n outline-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.focus.outline};\n box-shadow: 0 0 0 0.2rem\n ${({ theme, $platform }) => theme[$platform].calendar.focus[\"box-shadow\"]};\n }\n\n ul {\n list-style-type: none;\n padding: 0;\n margin: 0;\n }\n\n ${({ $cs }) => $cs}\n`;\n\nexport const NoResults = styled.li`\n padding: 1rem;\n font-weight: 600;\n`;\n\nexport const ListAction = styled.div<{ $platform: string }>`\n display: flex;\n justify-content: space-between;\n margin-top: 1rem;\n padding: 0 0.75rem 0.75rem;\n\n button {\n min-width: initial;\n padding: 0.5rem 1rem;\n height: auto;\n }\n`;\n\nexport const ListLoadingContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 15rem;\n`;\n","import styled from \"styled-components\";\n\nexport const Wrapper = styled.div<{ $platform: string }>`\n position: relative;\n border-radius: 0.375rem;\n\n &::after,\n svg {\n position: absolute;\n pointer-events: none;\n }\n\n svg {\n right: 13px;\n top: 13px;\n z-index: 1;\n }\n`;\n\nexport const SelectStyle = styled.select<{\n $platform: string;\n $error: boolean;\n}>`\n appearance: none;\n background-color: ${({ theme, $platform }) =>\n theme[$platform].input.background};\n border-radius: 0.375rem;\n box-sizing: border-box;\n cursor: pointer;\n height: 3rem;\n font-size: 1rem;\n max-height: 3rem;\n padding: 0.75rem 1rem;\n width: 100%;\n outline-color: transparent;\n border: 2px solid\n ${({ theme, $platform, $error }) =>\n theme[$platform].input[$error ? \"border-error\" : \"border\"]};\n\n &::-ms-expand {\n display: none;\n }\n\n &:focus {\n border: 1px solid\n ${({ theme, $platform }) => theme[$platform].colors.accent};\n box-shadow: 0 0 3px\n ${({ theme, $platform }) => theme[$platform].colors.accent};\n outline: none;\n }\n\n &:disabled {\n cursor: initial;\n }\n`;\n\nexport const Label = styled.label`\n display: block;\n font-size: 0.875rem;\n line-height: 1.125rem;\n margin-bottom: 0.5rem;\n`;\n","import styled from \"styled-components\";\n\n// Styles\nimport { Wrapper } from \"@/components/Navigation/Link/Link.styles\";\nimport { SelectStyle } from \"@/components/Inputs/NativeSelect/NativeSelect.styles\";\n\nexport const CustomSelect = styled(SelectStyle)<{\n $platform: string;\n $error?: boolean;\n}>`\n padding: 0;\n position: relative;\n border: 2px solid\n ${({ theme, $platform, $error }) =>\n theme[$platform].input[$error ? \"border-error\" : \"border\"]};\n border-radius: 0.375rem;\n`;\n\nexport const SelectedOption = styled.span<{\n $isPlaceholder: boolean;\n $platform: string;\n}>`\n display: block;\n padding: 0.75rem 1rem;\n width: 100%;\n color: ${({ $platform, theme, $isPlaceholder }) =>\n $isPlaceholder\n ? theme[$platform].colors[\"neutral-30\"]\n : theme[$platform].colors.black};\n`;\n\nexport const OptionStyle = styled.div<{ $platform: string }>`\n align-items: center;\n box-sizing: border-box;\n display: flex;\n min-height: 3rem;\n padding: 0.75rem 1rem;\n\n &[aria-selected=\"true\"] {\n border-left: 0.125rem solid\n ${({ $platform, theme }) => theme[$platform].options[\"selected-border\"]};\n }\n`;\n\nexport const OptionsStyle = styled.div<{ $platform: string }>`\n background-color: ${({ $platform, theme }) =>\n theme[$platform].options.background};\n box-shadow: 0 1.375rem 2.5rem 0 rgba(169, 169, 169, 0.25);\n position: absolute;\n width: 100%;\n z-index: 20;\n top: 3.2rem;\n\n ${OptionStyle}:nth-child(odd) {\n background-color: ${({ $platform, theme }) =>\n theme[$platform].options[\"background-odd\"]};\n }\n`;\n\nexport const FooterLinkStyle = styled(OptionStyle)`\n padding: 0;\n\n ${Wrapper} {\n padding: 0.75rem 1rem;\n text-decoration: none;\n width: 100%;\n }\n`;\n","import { useState, useEffect } from \"react\";\nimport { calculateDevice, debounce, DEFAULT_WINDOW_SIZE } from \"@/utils\";\n\n/**\n *\n * @returns {{ isDesktop: Boolean, isMobile: Boolean, isTablet: Boolean, height: Number, width: Number }} Returns the device type, height and width of the window\n */\nfunction getSize() {\n const isBrowser = typeof window !== \"undefined\";\n const height = isBrowser ? window.innerHeight : DEFAULT_WINDOW_SIZE.height;\n const width = isBrowser ? window.innerWidth : DEFAULT_WINDOW_SIZE.width;\n\n return {\n dimensions: { height, width },\n ...calculateDevice({ height, width }),\n };\n}\n\nexport function useWindowSize() {\n const [windowSize, setWindowSize] = useState(getSize);\n\n useEffect(() => {\n // Debounce to avoid the function fire multiple times\n const handleResize = debounce(function handleResize() {\n setWindowSize(getSize());\n }, 150);\n\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n return windowSize;\n}\n","import styled from \"styled-components\";\n\nimport { responsiveDesktopFirst } from \"@/utils/styles/styles\";\n\nexport const Wrapper = styled.div<{\n $cs?: any;\n $platform: string;\n}>`\n display: inline-block;\n position: relative;\n\n & > .ds-tooltip__text {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].toolTip.background};\n box-sizing: border-box;\n border-radius: 0.5rem;\n font-size: 0.875rem;\n color: ${({ theme, $platform }) => theme[$platform].toolTip[\"text-color\"]};\n height: min-content;\n opacity: 0;\n padding: 1rem;\n position: absolute;\n transition: opacity 0.2s;\n visibility: hidden;\n width: 19.625rem;\n z-index: 10;\n\n &--bottom,\n &--top {\n left: 50%;\n transform: translate(-50%, 0);\n }\n\n &--bottom {\n top: calc(100% + 0.313rem);\n }\n\n &--top {\n bottom: calc(100% + 0.313rem);\n }\n\n &--left,\n &--right {\n top: 50%;\n transform: translate(0, -50%);\n }\n\n &--left {\n right: calc(100% + 0.313rem);\n }\n\n &--right {\n left: calc(100% + 0.313rem);\n }\n\n &--top--left,\n &--top--right,\n &--bottom--left,\n &--bottom--right {\n top: 50%;\n transform: translate(0, -50%);\n }\n\n &--top--left,\n &--bottom--left {\n left: auto;\n right: calc(100% + 0.313rem);\n transform: translate(0);\n }\n\n &--top--left {\n bottom: calc(100% + 0.313rem);\n top: auto;\n }\n\n &--bottom--left {\n top: calc(100% + 0.313rem);\n }\n\n &--top--right,\n &--bottom--right {\n left: calc(100% + 0.313rem);\n transform: translate(0);\n }\n\n &--top--right {\n bottom: calc(100% + 0.313rem);\n top: auto;\n }\n\n &--bottom--right {\n top: calc(100% + 0.313rem);\n }\n }\n\n ${responsiveDesktopFirst(\n `\n padding: 0.84rem 1rem;\n width: 18rem;\n `,\n \"sm\"\n )}\n\n .ds-tooltip__text--visible {\n opacity: 1;\n visibility: visible;\n }\n`;\n","import { useState, useEffect, useRef } from \"react\";\nimport classNames from \"classnames\";\n\n// Hooks\nimport { useWindowSize } from \"@/hooks/useWindowSize\";\n\n// Styles\nimport { Wrapper } from \"./Tooltip.styles\";\n\n// Theme Provider\nimport { Theme } from \"@/theme\";\n\nexport const Tooltip = ({\n children,\n className,\n content,\n cs,\n id,\n onTooltipVisible,\n platform = \"octopus-online\",\n position = \"top\",\n ...rest\n}: any) => {\n const [placement, setPlacement] = useState(\"\");\n const tooltipRef = useRef();\n const isOpen = useRef(false);\n\n const {\n dimensions: { width: windowWidth },\n } = useWindowSize();\n\n useEffect(() => {\n if (position) setPlacement(position.split(\" \").join(\"--\"));\n }, [position]);\n\n const handleOnMouseEnter = () => {\n isOpen.current = true;\n if (onTooltipVisible) onTooltipVisible();\n const tooltipCurrent = tooltipRef.current;\n if (!tooltipCurrent) return;\n tooltipCurrent.classList.add(\"ds-tooltip__text--visible\");\n };\n\n const hideTootleTip = (e: KeyboardEvent | MouseEvent) => {\n const tooltipCurrent = tooltipRef.current;\n\n if ((e as KeyboardEvent).key === \"Escape\" && isOpen.current) {\n isOpen.current = false;\n }\n tooltipCurrent!.classList.remove(\"ds-tooltip__text--visible\");\n };\n\n useEffect(() => {\n document.addEventListener(\"keydown\", hideTootleTip);\n return () => {\n document.removeEventListener(\"keydown\", hideTootleTip);\n };\n }, []);\n\n useEffect(() => {\n if (!tooltipRef.current) return;\n const tooltipCurrent = tooltipRef.current;\n\n // Reset left style to get original positioning calculations\n tooltipCurrent.style.left = \"\";\n const { x, width } = tooltipCurrent.getBoundingClientRect();\n const currentLeft = window\n .getComputedStyle(tooltipCurrent)\n .getPropertyValue(\"left\");\n const BROWSER_PADDING = 16;\n\n if (x < 0) {\n const browserOffset = Math.round(Math.abs(x)) + BROWSER_PADDING;\n tooltipCurrent.style.left = `calc(${currentLeft} + ${browserOffset}px)`;\n } else if (x + width > windowWidth) {\n const browserOffset =\n Math.round(x + width - windowWidth) + BROWSER_PADDING;\n tooltipCurrent.style.left = `calc(${currentLeft} - ${browserOffset}px)`;\n }\n }, [windowWidth]);\n\n const tooltipClasses = classNames(\"ds-tooltip\", className);\n return (\n \n \n \n {children}\n \n \n {content}\n \n \n \n );\n};\n","import { useCallback, useEffect, useState } from \"react\";\n\nexport const useMediaQuery = (query: string) => {\n const getMatches = (query: string) => {\n if (typeof window !== \"undefined\") {\n return window.matchMedia(query).matches;\n }\n return false;\n };\n\n const [matches, setMatches] = useState(getMatches(query));\n\n const handleChange = useCallback(() => {\n setMatches(getMatches(query));\n }, [query]);\n\n useEffect(() => {\n const matchMedia = window.matchMedia(query);\n handleChange();\n matchMedia.addEventListener(\"change\", handleChange);\n return () => {\n matchMedia.removeEventListener(\"change\", handleChange);\n };\n }, [handleChange, query]);\n\n return matches;\n};\n","import { css } from \"styled-components\";\n\n// Based on https://wiki.octopusgroup.com/x/pqXGD\nexport const breakpoints = {\n // All values are in rems\n xs: 20,\n sm: 35.5,\n md: 48,\n lg: 64,\n xl: 90,\n xxl: 120,\n} as const;\n\ntype TSizes = keyof typeof breakpoints;\n\nexport const responsiveDesktopFirst = (size: TSizes, styles: any) => css`\n @media only screen and (max-width: ${breakpoints[size]}rem) {\n ${styles}\n }\n`;\n\nexport const mobileDesktopFirst = (size: TSizes, styles: any) => css`\n @media only screen and (min-width: ${breakpoints[size]}rem) {\n ${styles}\n }\n`;\n","import styled from \"styled-components\";\n\nexport const TextLabelStyle = styled.div<{ $cs: any }>`\n p {\n margin: 0;\n }\n ${({ $cs }) => $cs}\n`;\n\nexport const TextStyle = styled.p<{ $textColor?: string }>`\n font-size: 1rem;\n font-weight: 600;\n line-height: 1.5rem;\n color: ${({ $textColor }) => $textColor};\n`;\n\nexport const LabelStyle = styled(TextStyle)`\n font-size: 0.875rem;\n line-height: 1.375rem;\n font-weight: 500;\n`;\n\nexport const TooltipLabelStyle = styled.div<{ $platform: string }>`\n align-items: center;\n display: flex;\n\n .ds-text-label__tooltip__icon {\n cursor: pointer;\n height: 16px;\n margin-left: 4px;\n width: 16px;\n\n svg {\n bottom: 1px;\n height: 100%;\n position: relative;\n width: 100%;\n }\n }\n\n .ds-text-label-tooltip-label p {\n color: ${({ theme, $platform }) => theme[$platform].colors[\"link-color\"]};\n text-decoration: underline;\n }\n`;\n\nexport const TextWrapperStyle = styled.div<{ $textIconColor: string }>`\n align-items: center;\n display: flex;\n\n svg {\n margin-right: 0.25rem;\n color: ${({ $textIconColor }) => $textIconColor};\n }\n`;\n","import classNames from \"classnames\";\nimport { isValidElement } from \"react\";\n// Icons\nimport { Info } from \"@/Icons\";\n\n// Components\nimport { Tooltip } from \"../../Overlay/Tooltip/Tooltip\";\n\n// Hooks\nimport { useMediaQuery } from \"@/hooks/useMediaQuery/useMediaQuery\";\n\n// Constants\nimport { breakpoints } from \"@/utils/styles/breakpoints\";\n\n// Styles\nimport {\n LabelStyle,\n TextLabelStyle,\n TextStyle,\n TextWrapperStyle,\n TooltipLabelStyle,\n} from \"./TextLabel.styles\";\nimport { Theme } from \"@/theme\";\n\nexport const TextLabel = ({\n className,\n cs,\n label,\n platform = \"octopus-online\",\n text,\n textColor = null,\n textIcon = null,\n tooltipProps = {\n content: false,\n },\n ...rest\n}: any) => {\n const isSmDevice = useMediaQuery(`(min-width: ${breakpoints.sm}px)`);\n\n const textLabelClasses = classNames(\"ds-text-label\", className);\n\n const textStyleProps = isValidElement(text) ? { as: \"div\" } : {};\n\n const labelTextOrTooltip = tooltipProps.content ? (\n \n \n {isSmDevice ? (\n <>\n {label}\n \n \n \n \n ) : (\n \n {label}\n \n )}\n \n \n ) : (\n {label}\n );\n\n return (\n \n {labelTextOrTooltip}\n \n {textIcon}\n \n {text || text === 0 ? text : \"-\"}\n \n \n \n );\n};\n","import styled from \"styled-components\";\n\nexport const Wrapper = styled.div<{\n $activeLabel?: string;\n $disabledLabel?: string;\n $platform: string;\n $cs?: any;\n}>`\n display: inline-flex;\n gap: 0.5rem;\n align-items: center;\n ${({ $activeLabel, $disabledLabel, theme, $platform }) =>\n $activeLabel || $disabledLabel\n ? `\npadding: 0.25rem 1rem 0.25rem 0.45rem;\nborder: 1px solid ${theme[$platform].colors[\"neutral-80\"] ?? \"transparent\"};\n border-radius: 2rem`\n : `width: 2rem;\n height: 2rem;\n padding:0; \n border: none;\n border-radius: 50%`};\n min-width: fit-content;\n background: white;\n ${({ $cs }) => $cs};\n`;\n\nexport const StatusCircle = styled.div<{\n $isActive: boolean;\n $platform: string;\n}>`\n width: 1.25rem;\n height: 1.25rem;\n flex-shrink: 0;\n border-radius: 100%;\n background-color: ${({ $isActive, theme, $platform }) =>\n $isActive\n ? theme[$platform].colors[\"green-40\"]\n : theme[$platform].colors[\"red-40\"]};\n`;\n\nexport const StatusText = styled.span`\n padding-top: 0.025rem;\n`;\n","import styled, { css } from \"styled-components\";\n\n// Helpers\nimport { TabletStyles } from \"@/utils/styles/styles\";\n\nexport const Wrapper = styled.section<{ $platform: string; $cs: any }>`\n border: 1px solid ${({ theme, $platform }) => theme[$platform].table.border};\n border-radius: 8px;\n overflow-x: auto;\n scrollbar-color: ${({ theme, $platform }) =>\n theme[$platform].table[\"scroll-thumb\"]};\n ${({ theme, $platform }) =>\n theme[$platform].table[\"scrollbar-track-background\"]};\n\n ::-webkit-scrollbar {\n height: 0.875rem;\n }\n\n ::-webkit-scrollbar-track {\n background: ${({ theme, $platform }) =>\n theme[$platform].table[\"scrollbar-border\"]};\n }\n\n ::-webkit-scrollbar-thumb {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].table[\"scroll-thumb\"]};\n border-radius: 1.25rem;\n border: 3px solid\n ${({ theme, $platform }) => theme[$platform].table[\"scrollbar-border\"]};\n }\n\n ${({ $cs }) => $cs};\n`;\n\nexport const TableStyle = styled.table<{ $cs: any }>`\n border-collapse: collapse;\n border-spacing: 0;\n min-width: 100%;\n ${({ $cs }) => $cs};\n`;\n\nexport const HeaderRowStyle = styled.tr<{ $platform: string }>`\n border-bottom: 8px solid\n ${({ theme, $platform }) => theme[$platform].colors[\"neutral-80\"]};\n`;\n\nexport const HeaderMultiRowStyle = styled.tr<{ $platform: string }>`\n &:nth-child(2) {\n border-bottom: 8px solid\n ${({ theme, $platform }) => theme[$platform].colors[\"neutral-80\"]};\n }\n\n th[colSpan] {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].colors[\"neutral-90\"]};\n\n &:not(:first-child) {\n padding-right: 0.75rem;\n }\n }\n\n th.border-left {\n border-left: 1px solid\n ${({ theme, $platform }) => theme[$platform].colors[\"neutral-70\"]};\n }\n\n th.border-right {\n border-right: 1px solid\n ${({ theme, $platform }) => theme[$platform].colors[\"neutral-70\"]};\n ${TabletStyles(`\n &.border-right {\n padding-right: 0.75rem;\n }\n `)};\n }\n`;\n\nexport const TableBodyRowStyle = styled.tr<{\n $activeRow: any;\n $cs: any;\n $hasClickAction: boolean;\n $platform: string;\n}>`\n border-bottom: 1px solid\n ${({ theme, $platform }) => theme[$platform].colors[\"neutral-70\"]};\n\n &:last-child {\n border-bottom: none;\n }\n\n td.border-left {\n border-left: 1px solid\n ${({ theme, $platform }) => theme[$platform].colors[\"neutral-70\"]};\n }\n\n td.border-right {\n border-right: 1px solid\n ${({ theme, $platform }) => theme[$platform].colors[\"neutral-70\"]};\n }\n\n min-height: 3.5rem;\n ${({ $activeRow, theme, $platform }) =>\n $activeRow && `background-color: ${theme[$platform].table.background};`}\n\n ${({ $hasClickAction, theme, $platform }) =>\n $hasClickAction &&\n css`\n cursor: pointer;\n\n &:hover {\n background-color: ${theme[$platform].table.background};\n }\n `}\n\n ${({ $cs }) => $cs};\n`;\n\nexport const FooterRowStyle = styled.tr<{ $platform: string }>`\n border-top: 8px solid\n ${({ theme, $platform }) => theme[$platform].colors[\"neutral-70\"]};\n\n > td {\n font-weight: 600;\n }\n`;\n","import styled from \"styled-components\";\n\nexport const TDWrapper = styled.td`\n padding: 1rem 0 1rem 0.75rem;\n\n &:last-of-type {\n padding-right: 0.75rem;\n }\n`;\n\nexport const THWrapper = styled.th<{\n $platform: string;\n}>`\n padding: 1rem 0 1rem 0.75rem;\n\n &:last-of-type {\n padding-right: 0.75rem;\n }\n\n background-color: ${({ theme, $platform }) => theme[$platform].colors.white};\n font-weight: 600;\n`;\n","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nfunction replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nfunction decodeCodePoint(codePoint) {\n return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importStar(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nvar TO_LOWER_BIT = 32;\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nvar DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nvar EntityDecoder = /** @class */ (function () {\n function EntityDecoder(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n EntityDecoder.prototype.startEntity = function (decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n };\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.write = function (str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n };\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericStart = function (str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n };\n EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) {\n if (start !== end) {\n var digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n };\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericHex = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n };\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericDecimal = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n };\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n EntityDecoder.prototype.emitNumericEntity = function (lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n };\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNamedEntity = function (str, offset) {\n var decodeTree = this.decodeTree;\n var current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n var char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n };\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () {\n var _a;\n var _b = this, result = _b.result, decodeTree = _b.decodeTree;\n var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n };\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) {\n var decodeTree = this.decodeTree;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n };\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.end = function () {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n };\n return EntityDecoder;\n}());\nexports.EntityDecoder = EntityDecoder;\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n var ret = \"\";\n var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); });\n return function decodeWithTrie(str, decodeMode) {\n var lastIndex = 0;\n var offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n var len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n var result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n var value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str, mode) {\n if (mode === void 0) { mode = DecodingMode.Legacy; }\n return htmlDecoder(str, mode);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuoteType = void 0;\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n State[State[\"Text\"] = 1] = \"Text\";\n State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n State[State[\"InTagName\"] = 3] = \"InTagName\";\n State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n // Attributes\n State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n // Declarations\n State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n // Processing instructions\n State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n // Comments & CDATA\n State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n // Special tags\n State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n State[State[\"SpecialStartSequence\"] = 23] = \"SpecialStartSequence\";\n State[State[\"InSpecialTag\"] = 24] = \"InSpecialTag\";\n State[State[\"BeforeEntity\"] = 25] = \"BeforeEntity\";\n State[State[\"BeforeNumericEntity\"] = 26] = \"BeforeNumericEntity\";\n State[State[\"InNamedEntity\"] = 27] = \"InNamedEntity\";\n State[State[\"InNumericEntity\"] = 28] = \"InNumericEntity\";\n State[State[\"InHexEntity\"] = 29] = \"InHexEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n return (c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isNumber(c) {\n return c >= CharCodes.Zero && c <= CharCodes.Nine;\n}\nfunction isASCIIAlpha(c) {\n return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nfunction isHexDigit(c) {\n return ((c >= CharCodes.UpperA && c <= CharCodes.UpperF) ||\n (c >= CharCodes.LowerA && c <= CharCodes.LowerF));\n}\nvar QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType = exports.QuoteType || (exports.QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nvar Sequences = {\n Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]),\n CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]),\n CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]),\n ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]),\n StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]),\n TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // ` this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = State.BeforeTagName;\n this.sectionStart = this.index;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateSpecialStartSequence = function (c) {\n var isEnd = this.sequenceIndex === this.currentSequence.length;\n var isMatch = isEnd\n ? // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n : // Otherwise, do a case-insensitive comparison\n (c | 0x20) === this.currentSequence[this.sequenceIndex];\n if (!isMatch) {\n this.isSpecial = false;\n }\n else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n };\n /** Look for an end tag. For tags, also decode entities. */\n Tokenizer.prototype.stateInSpecialTag = function (c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n var endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n var actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.isSpecial = false;\n this.sectionStart = endOfText + 2; // Skip over the `</`\n this.stateInClosingTagName(c);\n return; // We are done; skip the rest of the function.\n }\n this.sequenceIndex = 0;\n }\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n }\n else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd) {\n // We have to parse entities in <title> tags.\n if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n }\n else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of <title> tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\n }\n else {\n // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n };\n Tokenizer.prototype.stateCDATASequence = function (c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n };\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n Tokenizer.prototype.fastForwardTo = function (c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n };\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n Tokenizer.prototype.stateInCommentLike = function (c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n };\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n Tokenizer.prototype.isTagStartChar = function (c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n };\n Tokenizer.prototype.startSpecial = function (sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n };\n Tokenizer.prototype.stateBeforeTagName = function (c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n var lower = c | 0x20;\n this.sectionStart = this.index;\n if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n this.startSpecial(Sequences.TitleEnd, 3);\n }\n else {\n this.state =\n !this.xmlMode && lower === Sequences.ScriptEnd[2]\n ? State.BeforeSpecialS\n : State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n };\n Tokenizer.prototype.stateInTagName = function (c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInClosingTagName = function (c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n };\n Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.baseState = this.state;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateInAttributeName = function (c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n };\n Tokenizer.prototype.stateAfterAttributeName = function (c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n };\n Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInDeclaration = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeComment = function (c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. <!-->)\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInSpecialComment = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n var lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n };\n Tokenizer.prototype.stateBeforeEntity = function (c) {\n // Start excess with 1 to include the '&'\n this.entityExcess = 1;\n this.entityResult = 0;\n if (c === CharCodes.Number) {\n this.state = State.BeforeNumericEntity;\n }\n else if (c === CharCodes.Amp) {\n // We have two `&` characters in a row. Stay in the current state.\n }\n else {\n this.trieIndex = 0;\n this.trieCurrent = this.entityTrie[0];\n this.state = State.InNamedEntity;\n this.stateInNamedEntity(c);\n }\n };\n Tokenizer.prototype.stateInNamedEntity = function (c) {\n this.entityExcess += 1;\n this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n if (this.trieIndex < 0) {\n this.emitNamedEntity();\n this.index--;\n return;\n }\n this.trieCurrent = this.entityTrie[this.trieIndex];\n var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (masked >> 14) - 1;\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {\n this.trieIndex += valueLength;\n }\n else {\n // Add 1 as we have already incremented the excess\n var entityStart = this.index - this.entityExcess + 1;\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n // If this is a surrogate pair, consume the next two bytes\n this.entityResult = this.trieIndex;\n this.trieIndex += valueLength;\n this.entityExcess = 0;\n this.sectionStart = this.index + 1;\n if (valueLength === 0) {\n this.emitNamedEntity();\n }\n }\n }\n };\n Tokenizer.prototype.emitNamedEntity = function () {\n this.state = this.baseState;\n if (this.entityResult === 0) {\n return;\n }\n var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >>\n 14;\n switch (valueLength) {\n case 1: {\n this.emitCodePoint(this.entityTrie[this.entityResult] &\n ~decode_js_1.BinTrieFlags.VALUE_LENGTH);\n break;\n }\n case 2: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n break;\n }\n case 3: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n this.emitCodePoint(this.entityTrie[this.entityResult + 2]);\n }\n }\n };\n Tokenizer.prototype.stateBeforeNumericEntity = function (c) {\n if ((c | 0x20) === CharCodes.LowerX) {\n this.entityExcess++;\n this.state = State.InHexEntity;\n }\n else {\n this.state = State.InNumericEntity;\n this.stateInNumericEntity(c);\n }\n };\n Tokenizer.prototype.emitNumericEntity = function (strict) {\n var entityStart = this.index - this.entityExcess - 1;\n var numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);\n if (numberStart !== this.index) {\n // Emit leading data if any\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n this.sectionStart = this.index + Number(strict);\n this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult));\n }\n this.state = this.baseState;\n };\n Tokenizer.prototype.stateInNumericEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.stateInHexEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else if (isHexDigit(c)) {\n this.entityResult =\n this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.allowLegacyEntity = function () {\n return (!this.xmlMode &&\n (this.baseState === State.Text ||\n this.baseState === State.InSpecialTag));\n };\n /**\n * Remove data that has already been consumed from the buffer.\n */\n Tokenizer.prototype.cleanup = function () {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n };\n Tokenizer.prototype.shouldContinue = function () {\n return this.index < this.buffer.length + this.offset && this.running;\n };\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n Tokenizer.prototype.parse = function () {\n while (this.shouldContinue()) {\n var c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.BeforeSpecialS: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InNamedEntity: {\n this.stateInNamedEntity(c);\n break;\n }\n case State.BeforeEntity: {\n this.stateBeforeEntity(c);\n break;\n }\n case State.InHexEntity: {\n this.stateInHexEntity(c);\n break;\n }\n case State.InNumericEntity: {\n this.stateInNumericEntity(c);\n break;\n }\n default: {\n // `this._state === State.BeforeNumericEntity`\n this.stateBeforeNumericEntity(c);\n }\n }\n this.index++;\n }\n this.cleanup();\n };\n Tokenizer.prototype.finish = function () {\n if (this.state === State.InNamedEntity) {\n this.emitNamedEntity();\n }\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this.index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n };\n /** Handle any trailing data. */\n Tokenizer.prototype.handleTrailingData = function () {\n var endIndex = this.buffer.length + this.offset;\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InNumericEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InHexEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n };\n Tokenizer.prototype.emitPartial = function (start, endIndex) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribdata(start, endIndex);\n }\n else {\n this.cbs.ontext(start, endIndex);\n }\n };\n Tokenizer.prototype.emitCodePoint = function (cp) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribentity(cp);\n }\n else {\n this.cbs.ontextentity(cp);\n }\n };\n return Tokenizer;\n}());\nexports.default = Tokenizer;\n//# sourceMappingURL=Tokenizer.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parser = void 0;\nvar Tokenizer_js_1 = __importStar(require(\"./Tokenizer.js\"));\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nvar pTag = new Set([\"p\"]);\nvar tableSectionTags = new Set([\"thead\", \"tbody\"]);\nvar ddtTags = new Set([\"dd\", \"dt\"]);\nvar rtpTags = new Set([\"rt\", \"rp\"]);\nvar openImpliesClose = new Map([\n [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n [\"th\", new Set([\"th\"])],\n [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n [\"body\", new Set([\"head\", \"link\", \"script\"])],\n [\"li\", new Set([\"li\"])],\n [\"p\", pTag],\n [\"h1\", pTag],\n [\"h2\", pTag],\n [\"h3\", pTag],\n [\"h4\", pTag],\n [\"h5\", pTag],\n [\"h6\", pTag],\n [\"select\", formTags],\n [\"input\", formTags],\n [\"output\", formTags],\n [\"button\", formTags],\n [\"datalist\", formTags],\n [\"textarea\", formTags],\n [\"option\", new Set([\"option\"])],\n [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n [\"dd\", ddtTags],\n [\"dt\", ddtTags],\n [\"address\", pTag],\n [\"article\", pTag],\n [\"aside\", pTag],\n [\"blockquote\", pTag],\n [\"details\", pTag],\n [\"div\", pTag],\n [\"dl\", pTag],\n [\"fieldset\", pTag],\n [\"figcaption\", pTag],\n [\"figure\", pTag],\n [\"footer\", pTag],\n [\"form\", pTag],\n [\"header\", pTag],\n [\"hr\", pTag],\n [\"main\", pTag],\n [\"nav\", pTag],\n [\"ol\", pTag],\n [\"pre\", pTag],\n [\"section\", pTag],\n [\"table\", pTag],\n [\"ul\", pTag],\n [\"rt\", rtpTags],\n [\"rp\", rtpTags],\n [\"tbody\", tableSectionTags],\n [\"tfoot\", tableSectionTags],\n]);\nvar voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\nvar foreignContextElements = new Set([\"math\", \"svg\"]);\nvar htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\nvar reNameEnd = /\\s|\\//;\nvar Parser = /** @class */ (function () {\n function Parser(cbs, options) {\n if (options === void 0) { options = {}; }\n var _a, _b, _c, _d, _e;\n this.options = options;\n /** The start index of the last event. */\n this.startIndex = 0;\n /** The end index of the last event. */\n this.endIndex = 0;\n /**\n * Store the start index of the current open tag,\n * so we can update the start index for attributes.\n */\n this.openTagStart = 0;\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack = [];\n this.foreignContext = [];\n this.buffers = [];\n this.bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n this.writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n this.ended = false;\n this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : !options.xmlMode;\n this.lowerCaseAttributeNames =\n (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options.xmlMode;\n this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer_js_1.default)(this.options, this);\n (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);\n }\n // Tokenizer event handlers\n /** @internal */\n Parser.prototype.ontext = function (start, endIndex) {\n var _a, _b;\n var data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n this.startIndex = endIndex;\n };\n /** @internal */\n Parser.prototype.ontextentity = function (cp) {\n var _a, _b;\n /*\n * Entities can be emitted on the character, or directly after.\n * We use the section start here to get accurate indices.\n */\n var index = this.tokenizer.getSectionStart();\n this.endIndex = index - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, (0, decode_js_1.fromCodePoint)(cp));\n this.startIndex = index;\n };\n Parser.prototype.isVoidElement = function (name) {\n return !this.options.xmlMode && voidElements.has(name);\n };\n /** @internal */\n Parser.prototype.onopentagname = function (start, endIndex) {\n this.endIndex = endIndex;\n var name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.emitOpenTag(name);\n };\n Parser.prototype.emitOpenTag = function (name) {\n var _a, _b, _c, _d;\n this.openTagStart = this.startIndex;\n this.tagname = name;\n var impliesClose = !this.options.xmlMode && openImpliesClose.get(name);\n if (impliesClose) {\n while (this.stack.length > 0 &&\n impliesClose.has(this.stack[this.stack.length - 1])) {\n var element = this.stack.pop();\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.push(name);\n if (foreignContextElements.has(name)) {\n this.foreignContext.push(true);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.push(false);\n }\n }\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n if (this.cbs.onopentag)\n this.attribs = {};\n };\n Parser.prototype.endOpenTag = function (isImplied) {\n var _a, _b;\n this.startIndex = this.openTagStart;\n if (this.attribs) {\n (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);\n this.attribs = null;\n }\n if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n this.cbs.onclosetag(this.tagname, true);\n }\n this.tagname = \"\";\n };\n /** @internal */\n Parser.prototype.onopentagend = function (endIndex) {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onclosetag = function (start, endIndex) {\n var _a, _b, _c, _d, _e, _f;\n this.endIndex = endIndex;\n var name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n if (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name)) {\n this.foreignContext.pop();\n }\n if (!this.isVoidElement(name)) {\n var pos = this.stack.lastIndexOf(name);\n if (pos !== -1) {\n if (this.cbs.onclosetag) {\n var count = this.stack.length - pos;\n while (count--) {\n // We know the stack has sufficient elements.\n this.cbs.onclosetag(this.stack.pop(), count !== 0);\n }\n }\n else\n this.stack.length = pos;\n }\n else if (!this.options.xmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n }\n else if (!this.options.xmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, \"br\");\n (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\", {}, true);\n (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", false);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onselfclosingtag = function (endIndex) {\n this.endIndex = endIndex;\n if (this.options.xmlMode ||\n this.options.recognizeSelfClosing ||\n this.foreignContext[this.foreignContext.length - 1]) {\n this.closeCurrentTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n };\n Parser.prototype.closeCurrentTag = function (isOpenImplied) {\n var _a, _b;\n var name = this.tagname;\n this.endOpenTag(isOpenImplied);\n // Self-closing tags will be on the top of the stack\n if (this.stack[this.stack.length - 1] === name) {\n // If the opening tag isn't implied, the closing tag has to be implied.\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n this.stack.pop();\n }\n };\n /** @internal */\n Parser.prototype.onattribname = function (start, endIndex) {\n this.startIndex = start;\n var name = this.getSlice(start, endIndex);\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n };\n /** @internal */\n Parser.prototype.onattribdata = function (start, endIndex) {\n this.attribvalue += this.getSlice(start, endIndex);\n };\n /** @internal */\n Parser.prototype.onattribentity = function (cp) {\n this.attribvalue += (0, decode_js_1.fromCodePoint)(cp);\n };\n /** @internal */\n Parser.prototype.onattribend = function (quote, endIndex) {\n var _a, _b;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double\n ? '\"'\n : quote === Tokenizer_js_1.QuoteType.Single\n ? \"'\"\n : quote === Tokenizer_js_1.QuoteType.NoValue\n ? undefined\n : null);\n if (this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n };\n Parser.prototype.getInstructionName = function (value) {\n var index = value.search(reNameEnd);\n var name = index < 0 ? value : value.substr(0, index);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n };\n /** @internal */\n Parser.prototype.ondeclaration = function (start, endIndex) {\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n var name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"!\".concat(name), \"!\".concat(value));\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onprocessinginstruction = function (start, endIndex) {\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n var name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"?\".concat(name), \"?\".concat(value));\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.oncomment = function (start, endIndex, offset) {\n var _a, _b, _c, _d;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.oncdata = function (start, endIndex, offset) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex - offset);\n if (this.options.xmlMode || this.options.recognizeCDATA) {\n (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n else {\n (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, \"[CDATA[\".concat(value, \"]]\"));\n (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onend = function () {\n var _a, _b;\n if (this.cbs.onclosetag) {\n // Set the end index for all remaining tags\n this.endIndex = this.startIndex;\n for (var index = this.stack.length; index > 0; this.cbs.onclosetag(this.stack[--index], true))\n ;\n }\n (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n Parser.prototype.reset = function () {\n var _a, _b, _c, _d;\n (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack.length = 0;\n this.startIndex = 0;\n this.endIndex = 0;\n (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n this.buffers.length = 0;\n this.bufferOffset = 0;\n this.writeIndex = 0;\n this.ended = false;\n };\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n Parser.prototype.parseComplete = function (data) {\n this.reset();\n this.end(data);\n };\n Parser.prototype.getSlice = function (start, end) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n var slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n slice += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n return slice;\n };\n Parser.prototype.shiftBuffer = function () {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n };\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n Parser.prototype.write = function (chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n return;\n }\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\n }\n };\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n Parser.prototype.end = function (chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".end() after done!\"));\n return;\n }\n if (chunk)\n this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n };\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n Parser.prototype.pause = function () {\n this.tokenizer.pause();\n };\n /**\n * Resumes parsing after `pause` was called.\n */\n Parser.prototype.resume = function () {\n this.tokenizer.resume();\n while (this.tokenizer.running &&\n this.writeIndex < this.buffers.length) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n if (this.ended)\n this.tokenizer.end();\n };\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n Parser.prototype.parseChunk = function (chunk) {\n this.write(chunk);\n };\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n Parser.prototype.done = function (chunk) {\n this.end(chunk);\n };\n return Parser;\n}());\nexports.Parser = Parser;\n//# sourceMappingURL=Parser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n","\"use strict\";\nvar __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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n Object.defineProperty(Node.prototype, \"parentNode\", {\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: name,\n value: _this.attribs[name],\n namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n },\n enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(\"Not implemented yet: \".concat(node.type));\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n };\n // Signals the handler that parsing is done\n DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n };\n DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n };\n return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","\"use strict\";\n// Generated using scripts/write-encode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction restoreDiff(arr) {\n for (var i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexports.default = new Map(/* #__PURE__ */ restoreDiff([[9, \" \"], [0, \" \"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [0, \"Ђ\"], [0, \"Ѓ\"], [0, \"Є\"], [0, \"Ѕ\"], [0, \"І\"], [0, \"Ї\"], [0, \"Ј\"], [0, \"Љ\"], [0, \"Њ\"], [0, \"Ћ\"], [0, \"Ќ\"], [1, \"Ў\"], [0, \"Џ\"], [0, \"А\"], [0, \"Б\"], [0, \"В\"], [0, \"Г\"], [0, \"Д\"], [0, \"Е\"], [0, \"Ж\"], [0, \"З\"], [0, \"И\"], [0, \"Й\"], [0, \"К\"], [0, \"Л\"], [0, \"М\"], [0, \"Н\"], [0, \"О\"], [0, \"П\"], [0, \"Р\"], [0, \"С\"], [0, \"Т\"], [0, \"У\"], [0, \"Ф\"], [0, \"Х\"], [0, \"Ц\"], [0, \"Ч\"], [0, \"Ш\"], [0, \"Щ\"], [0, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [0, \"и\"], [0, \"й\"], [0, \"к\"], [0, \"л\"], [0, \"м\"], [0, \"н\"], [0, \"о\"], [0, \"п\"], [0, \"р\"], [0, \"с\"], [0, \"т\"], [0, \"у\"], [0, \"ф\"], [0, \"х\"], [0, \"ц\"], [0, \"ч\"], [0, \"ш\"], [0, \"щ\"], [0, \"ъ\"], [0, \"ы\"], [0, \"ь\"], [0, \"э\"], [0, \"ю\"], [0, \"я\"], [1, \"ё\"], [0, \"ђ\"], [0, \"ѓ\"], [0, \"є\"], [0, \"ѕ\"], [0, \"і\"], [0, \"ї\"], [0, \"ј\"], [0, \"љ\"], [0, \"њ\"], [0, \"ћ\"], [0, \"ќ\"], [1, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [0, \"⇄\"], [0, \"⇅\"], [0, \"⇆\"], [0, \"⇇\"], [0, \"⇈\"], [0, \"⇉\"], [0, \"⇊\"], [0, \"⇋\"], [0, \"⇌\"], [0, \"⇍\"], [0, \"⇎\"], [0, \"⇏\"], [0, \"⇐\"], [0, \"⇑\"], [0, \"⇒\"], [0, \"⇓\"], [0, \"⇔\"], [0, \"⇕\"], [0, \"⇖\"], [0, \"⇗\"], [0, \"⇘\"], [0, \"⇙\"], [0, \"⇚\"], [0, \"⇛\"], [1, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [0, \"⊶\"], [0, \"⊷\"], [0, \"⊸\"], [0, \"⊹\"], [0, \"⊺\"], [0, \"⊻\"], [1, \"⊽\"], [0, \"⊾\"], [0, \"⊿\"], [0, \"⋀\"], [0, \"⋁\"], [0, \"⋂\"], [0, \"⋃\"], [0, \"⋄\"], [0, \"⋅\"], [0, \"⋆\"], [0, \"⋇\"], [0, \"⋈\"], [0, \"⋉\"], [0, \"⋊\"], [0, \"⋋\"], [0, \"⋌\"], [0, \"⋍\"], [0, \"⋎\"], [0, \"⋏\"], [0, \"⋐\"], [0, \"⋑\"], [0, \"⋒\"], [0, \"⋓\"], [0, \"⋔\"], [0, \"⋕\"], [0, \"⋖\"], [0, \"⋗\"], [0, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [0, \"⥟\"], [0, \"⥠\"], [0, \"⥡\"], [0, \"⥢\"], [0, \"⥣\"], [0, \"⥤\"], [0, \"⥥\"], [0, \"⥦\"], [0, \"⥧\"], [0, \"⥨\"], [0, \"⥩\"], [0, \"⥪\"], [0, \"⥫\"], [0, \"⥬\"], [0, \"⥭\"], [0, \"⥮\"], [0, \"⥯\"], [0, \"⥰\"], [0, \"⥱\"], [0, \"⥲\"], [0, \"⥳\"], [0, \"⥴\"], [0, \"⥵\"], [0, \"⥶\"], [1, \"⥸\"], [0, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [0, \"𝔗\"], [0, \"𝔘\"], [0, \"𝔙\"], [0, \"𝔚\"], [0, \"𝔛\"], [0, \"𝔜\"], [1, \"𝔞\"], [0, \"𝔟\"], [0, \"𝔠\"], [0, \"𝔡\"], [0, \"𝔢\"], [0, \"𝔣\"], [0, \"𝔤\"], [0, \"𝔥\"], [0, \"𝔦\"], [0, \"𝔧\"], [0, \"𝔨\"], [0, \"𝔩\"], [0, \"𝔪\"], [0, \"𝔫\"], [0, \"𝔬\"], [0, \"𝔭\"], [0, \"𝔮\"], [0, \"𝔯\"], [0, \"𝔰\"], [0, \"𝔱\"], [0, \"𝔲\"], [0, \"𝔳\"], [0, \"𝔴\"], [0, \"𝔵\"], [0, \"𝔶\"], [0, \"𝔷\"], [0, \"𝔸\"], [0, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [0, \"𝕋\"], [0, \"𝕌\"], [0, \"𝕍\"], [0, \"𝕎\"], [0, \"𝕏\"], [0, \"𝕐\"], [1, \"𝕒\"], [0, \"𝕓\"], [0, \"𝕔\"], [0, \"𝕕\"], [0, \"𝕖\"], [0, \"𝕗\"], [0, \"𝕘\"], [0, \"𝕙\"], [0, \"𝕚\"], [0, \"𝕛\"], [0, \"𝕜\"], [0, \"𝕝\"], [0, \"𝕞\"], [0, \"𝕟\"], [0, \"𝕠\"], [0, \"𝕡\"], [0, \"𝕢\"], [0, \"𝕣\"], [0, \"𝕤\"], [0, \"𝕥\"], [0, \"𝕦\"], [0, \"𝕧\"], [0, \"𝕨\"], [0, \"𝕩\"], [0, \"𝕪\"], [0, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;\nexports.xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nvar xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexports.getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? function (str, index) { return str.codePointAt(index); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c, index) {\n return (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n };\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nfunction encodeXML(str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = exports.xmlReplacer.exec(str)) !== null) {\n var i = match.index;\n var char = str.charCodeAt(i);\n var next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += \"\".concat(str.substring(lastIdx, i), \"&#x\").concat((0, exports.getCodePoint)(str, i).toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = exports.xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\nexports.encodeXML = encodeXML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexports.escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n var match;\n var lastIdx = 0;\n var result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexports.escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeNonAsciiHTML = exports.encodeHTML = void 0;\nvar encode_html_js_1 = __importDefault(require(\"./generated/encode-html.js\"));\nvar escape_js_1 = require(\"./escape.js\");\nvar htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeHTML(data) {\n return encodeHTMLTrieRe(htmlReplacer, data);\n}\nexports.encodeHTML = encodeHTML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeNonAsciiHTML(data) {\n return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);\n}\nexports.encodeNonAsciiHTML = encodeNonAsciiHTML;\nfunction encodeHTMLTrieRe(regExp, str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = regExp.exec(str)) !== null) {\n var i = match.index;\n ret += str.substring(lastIdx, i);\n var char = str.charCodeAt(i);\n var next = encode_html_js_1.default.get(char);\n if (typeof next === \"object\") {\n // We are in a branch. Try to match the next char.\n if (i + 1 < str.length) {\n var nextChar = str.charCodeAt(i + 1);\n var value = typeof next.n === \"number\"\n ? next.n === nextChar\n ? next.o\n : undefined\n : next.n.get(nextChar);\n if (value !== undefined) {\n ret += value;\n lastIdx = regExp.lastIndex += 1;\n continue;\n }\n }\n next = next.v;\n }\n // We might have a tree node without a value; skip and use a numeric entity.\n if (next !== undefined) {\n ret += next;\n lastIdx = i + 1;\n }\n else {\n var cp = (0, escape_js_1.getCodePoint)(str, i);\n ret += \"&#x\".concat(cp.toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = regExp.lastIndex += Number(cp !== char);\n }\n }\n return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLAttribute = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.DecodingMode = exports.EntityDecoder = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.EntityLevel = void 0;\nvar decode_js_1 = require(\"./decode.js\");\nvar encode_js_1 = require(\"./encode.js\");\nvar escape_js_1 = require(\"./escape.js\");\n/** The level of entities to support. */\nvar EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));\nvar EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nfunction decode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n var mode = typeof options === \"object\" ? options.mode : undefined;\n return (0, decode_js_1.decodeHTML)(data, mode);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nfunction decodeStrict(data, options) {\n var _a;\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = decode_js_1.DecodingMode.Strict);\n return decode(data, opts);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nfunction encode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return (0, escape_js_1.escapeUTF8)(data);\n if (opts.mode === EncodingMode.Attribute)\n return (0, escape_js_1.escapeAttribute)(data);\n if (opts.mode === EncodingMode.Text)\n return (0, escape_js_1.escapeText)(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return (0, encode_js_1.encodeNonAsciiHTML)(data);\n }\n return (0, encode_js_1.encodeHTML)(data);\n }\n // ASCII and Extensive are equivalent\n return (0, escape_js_1.encodeXML)(data);\n}\nexports.encode = encode;\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return escape_js_2.encodeXML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } });\nObject.defineProperty(exports, \"escapeAttribute\", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } });\nObject.defineProperty(exports, \"escapeText\", { enumerable: true, get: function () { return escape_js_2.escapeText; } });\nvar encode_js_2 = require(\"./encode.js\");\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nvar decode_js_2 = require(\"./decode.js\");\nObject.defineProperty(exports, \"EntityDecoder\", { enumerable: true, get: function () { return decode_js_2.EntityDecoder; } });\nObject.defineProperty(exports, \"DecodingMode\", { enumerable: true, get: function () { return decode_js_2.DecodingMode; } });\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTMLAttribute\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLAttribute; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\nexports.attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\n","\"use strict\";\nvar __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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_js_1 = require(\"./foreignNames.js\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \""\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? entities_1.encodeXML\n : entities_1.escapeAttribute;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return \"\".concat(key, \"=\\\"\").concat(encode(value), \"\\\"\");\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.render = render;\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\".concat(elem.name);\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \".concat(attribs);\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"</\".concat(elem.name, \">\");\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\".concat(elem.data, \">\");\n}\nfunction renderText(elem, opts) {\n var _a;\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? (0, entities_1.encodeXML)(data)\n : (0, entities_1.escapeText)(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"<![CDATA[\".concat(elem.children[0].data, \"]]>\");\n}\nfunction renderComment(elem) {\n return \"<!--\".concat(elem.data, \"-->\");\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.innerText = exports.textContent = exports.getText = exports.getInnerHTML = exports.getOuterHTML = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @returns `node`'s outer HTML.\n */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(node, options);\n}\nexports.getOuterHTML = getOuterHTML;\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @returns `node`'s inner HTML.\n */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return getOuterHTML(node, options); }).join(\"\")\n : \"\";\n}\nexports.getInnerHTML = getInnerHTML;\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `<br>` tags. Ignores comments.\n *\n * @category Stringify\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.getText = getText;\n/**\n * Get a node's text content. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.textContent = textContent;\n/**\n * Get a node's inner text, ignoring `<script>` and `<style>` tags. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.innerText = innerText;\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prevElementSibling = exports.nextElementSibling = exports.getName = exports.hasAttrib = exports.getAttributeValue = exports.getSiblings = exports.getParent = exports.getChildren = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Get a node's children.\n *\n * @category Traversal\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];\n}\nexports.getChildren = getChildren;\n/**\n * Get a node's parent.\n *\n * @category Traversal\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node, or `null` if `elem` is a root node.\n */\nfunction getParent(elem) {\n return elem.parent || null;\n}\nexports.getParent = getParent;\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first. If we don't\n * have a parent (the element is a root node), we walk the element's `prev` &\n * `next` to get all remaining nodes.\n *\n * @category Traversal\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings, including `elem`.\n */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\nexports.getSiblings = getSiblings;\n/**\n * Gets an attribute from an element.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\nexports.getAttributeValue = getAttributeValue;\n/**\n * Checks whether an element has an attribute.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\nexports.hasAttrib = hasAttrib;\n/**\n * Get the tag name of an element.\n *\n * @category Traversal\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n return elem.name;\n}\nexports.getName = getName;\n/**\n * Returns the next element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag, or `null` if there is no next\n * sibling.\n */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\nexports.nextElementSibling = nextElementSibling;\n/**\n * Returns the previous element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag, or `null` if there is no\n * previous sibling.\n */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\nexports.prevElementSibling = prevElementSibling;\n//# sourceMappingURL=traversal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepend = exports.prependChild = exports.append = exports.appendChild = exports.replaceElement = exports.removeElement = void 0;\n/**\n * Remove an element from the dom\n *\n * @category Manipulation\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n var childs = elem.parent.children;\n var childsIndex = childs.lastIndexOf(elem);\n if (childsIndex >= 0) {\n childs.splice(childsIndex, 1);\n }\n }\n elem.next = null;\n elem.prev = null;\n elem.parent = null;\n}\nexports.removeElement = removeElement;\n/**\n * Replace an element in the dom\n *\n * @category Manipulation\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n elem.parent = null;\n }\n}\nexports.replaceElement = replaceElement;\n/**\n * Append a child to an element.\n *\n * @category Manipulation\n * @param parent The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(parent, child) {\n removeElement(child);\n child.next = null;\n child.parent = parent;\n if (parent.children.push(child) > 1) {\n var sibling = parent.children[parent.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\nexports.appendChild = appendChild;\n/**\n * Append an element after another.\n *\n * @category Manipulation\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\nexports.append = append;\n/**\n * Prepend a child to an element.\n *\n * @category Manipulation\n * @param parent The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(parent, child) {\n removeElement(child);\n child.parent = parent;\n child.prev = null;\n if (parent.children.unshift(child) !== 1) {\n var sibling = parent.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\nexports.prependChild = prependChild;\n/**\n * Prepend an element before another.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\nexports.prepend = prepend;\n//# sourceMappingURL=manipulation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findAll = exports.existsOne = exports.findOne = exports.findOneChild = exports.find = exports.filter = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Search a node and its children for nodes passing a test function. If `node` is not an array, it will be wrapped in one.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return find(test, Array.isArray(node) ? node : [node], recurse, limit);\n}\nexports.filter = filter;\n/**\n * Search an array of nodes and their children for nodes passing a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n /** Stack of the arrays we are looking at. */\n var nodeStack = [nodes];\n /** Stack of the indices within the arrays. */\n var indexStack = [0];\n for (;;) {\n // First, check if the current array has any more elements to look at.\n if (indexStack[0] >= nodeStack[0].length) {\n // If we have no more arrays to look at, we are done.\n if (indexStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n var elem = nodeStack[0][indexStack[0]++];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n return result;\n }\n if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n /*\n * Add the children to the stack. We are depth-first, so this is\n * the next array we look at.\n */\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\nexports.find = find;\n/**\n * Finds the first element inside of an array that matches a test function. This is an alias for `Array.prototype.find`.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n * @deprecated Use `Array.prototype.find` directly.\n */\nfunction findOneChild(test, nodes) {\n return nodes.find(test);\n}\nexports.findOneChild = findOneChild;\n/**\n * Finds one element in a tree that passes a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Node or array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first node that passes `test`.\n */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var elem = null;\n for (var i = 0; i < nodes.length && !elem; i++) {\n var node = nodes[i];\n if (!(0, domhandler_1.isTag)(node)) {\n continue;\n }\n else if (test(node)) {\n elem = node;\n }\n else if (recurse && node.children.length > 0) {\n elem = findOne(test, node.children, true);\n }\n }\n return elem;\n}\nexports.findOne = findOne;\n/**\n * Checks if a tree of nodes contains at least one node passing a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing the test.\n */\nfunction existsOne(test, nodes) {\n return nodes.some(function (checked) {\n return (0, domhandler_1.isTag)(checked) &&\n (test(checked) || existsOne(test, checked.children));\n });\n}\nexports.existsOne = existsOne;\n/**\n * Search an array of nodes and their children for elements passing a test function.\n *\n * Same as `find`, but limited to elements and with less options, leading to reduced complexity.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nfunction findAll(test, nodes) {\n var result = [];\n var nodeStack = [nodes];\n var indexStack = [0];\n for (;;) {\n if (indexStack[0] >= nodeStack[0].length) {\n if (nodeStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n var elem = nodeStack[0][indexStack[0]++];\n if (!(0, domhandler_1.isTag)(elem))\n continue;\n if (test(elem))\n result.push(elem);\n if (elem.children.length > 0) {\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\nexports.findAll = findAll;\n//# sourceMappingURL=querying.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getElementsByTagType = exports.getElementsByTagName = exports.getElementById = exports.getElements = exports.testElement = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_js_1 = require(\"./querying.js\");\n/**\n * A map of functions to check nodes against.\n */\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n },\n};\n/**\n * Returns a function to check whether a node has an attribute with a particular\n * value.\n *\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a\n * particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * Returns a function that returns `true` if either of the input functions\n * returns `true` for a node.\n *\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either of the input\n * functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * Returns a function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n *\n * @param options An object describing nodes to look for.\n * @returns A function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n */\nfunction compileTest(options) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * Checks whether a node matches the description in `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\nexports.testElement = testElement;\n/**\n * Returns all nodes that match `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : [];\n}\nexports.getElements = getElements;\n/**\n * Returns the node with the supplied ID.\n *\n * @category Legacy Query Functions\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_js_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\nexports.getElementById = getElementById;\n/**\n * Returns all nodes with the supplied `tagName`.\n *\n * @category Legacy Query Functions\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_name\"](tagName), nodes, recurse, limit);\n}\nexports.getElementsByTagName = getElementsByTagName;\n/**\n * Returns all nodes with the supplied `type`.\n *\n * @category Legacy Query Functions\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_type\"](type), nodes, recurse, limit);\n}\nexports.getElementsByTagType = getElementsByTagType;\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uniqueSort = exports.compareDocumentPosition = exports.DocumentPosition = exports.removeSubsets = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another\n * member.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't contained by other nodes.\n */\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n var node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\nexports.removeSubsets = removeSubsets;\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nvar DocumentPosition;\n(function (DocumentPosition) {\n DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition = exports.DocumentPosition || (exports.DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document,\n * returning a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n }\n return DocumentPosition.FOLLOWING;\n }\n if (sharedParent === nodeA) {\n return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n }\n return DocumentPosition.PRECEDING;\n}\nexports.compareDocumentPosition = compareDocumentPosition;\n/**\n * Sort an array of nodes based on their relative position in the document,\n * removing any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var relative = compareDocumentPosition(a, b);\n if (relative & DocumentPosition.PRECEDING) {\n return -1;\n }\n else if (relative & DocumentPosition.FOLLOWING) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\nexports.uniqueSort = uniqueSort;\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = void 0;\nvar stringify_js_1 = require(\"./stringify.js\");\nvar legacy_js_1 = require(\"./legacy.js\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @category Feeds\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\nexports.getFeed = getFeed;\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_js_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_js_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children) || fetch(\"dc:date\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return (0, legacy_js_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs[\"medium\"],\n isDefault: !!attribs[\"isDefault\"],\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs[\"expression\"]) {\n media.expression = attribs[\"expression\"];\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n//# sourceMappingURL=feeds.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;\n__exportStar(require(\"./stringify.js\"), exports);\n__exportStar(require(\"./traversal.js\"), exports);\n__exportStar(require(\"./manipulation.js\"), exports);\n__exportStar(require(\"./querying.js\"), exports);\n__exportStar(require(\"./legacy.js\"), exports);\n__exportStar(require(\"./helpers.js\"), exports);\n__exportStar(require(\"./feeds.js\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"isTag\", { enumerable: true, get: function () { return domhandler_1.isTag; } });\nObject.defineProperty(exports, \"isCDATA\", { enumerable: true, get: function () { return domhandler_1.isCDATA; } });\nObject.defineProperty(exports, \"isText\", { enumerable: true, get: function () { return domhandler_1.isText; } });\nObject.defineProperty(exports, \"isComment\", { enumerable: true, get: function () { return domhandler_1.isComment; } });\nObject.defineProperty(exports, \"isDocument\", { enumerable: true, get: function () { return domhandler_1.isDocument; } });\nObject.defineProperty(exports, \"hasChildren\", { enumerable: true, get: function () { return domhandler_1.hasChildren; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DefaultHandler = exports.DomHandler = exports.Parser = void 0;\nvar Parser_js_1 = require(\"./Parser.js\");\nvar Parser_js_2 = require(\"./Parser.js\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_js_2.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nvar domhandler_2 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Old name for DomHandler\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n var handler = new domhandler_1.DomHandler(undefined, options);\n new Parser_js_1.Parser(handler, options).end(data);\n return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(callback, options, elementCallback) {\n var handler = new domhandler_1.DomHandler(callback, options, elementCallback);\n return new Parser_js_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_js_1 = require(\"./Tokenizer.js\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_js_1).default; } });\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nexports.ElementType = __importStar(require(\"domelementtype\"));\nvar domutils_1 = require(\"domutils\");\nvar domutils_2 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_2.getFeed; } });\nvar parseFeedDefaultOptions = { xmlMode: true };\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n if (options === void 0) { options = parseFeedDefaultOptions; }\n return (0, domutils_1.getFeed)(parseDOM(feed, options));\n}\nexports.parseFeed = parseFeed;\nexports.DomUtils = __importStar(require(\"domutils\"));\n//# sourceMappingURL=index.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/**\n * Srcset Parser\n *\n * By Alex Bell | MIT License\n *\n * JS Parser for the string value that appears in markup <img srcset=\"here\">\n *\n * @returns Array [{url: _, d: _, w: _, h:_}, ...]\n *\n * Based super duper closely on the reference algorithm at:\n * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n *\n * Most comments are copied in directly from the spec\n * (except for comments in parens).\n */\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof module === 'object' && module.exports) {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.parseSrcset = factory();\n\t}\n}(this, function () {\n\n\t// 1. Let input be the value passed to this algorithm.\n\treturn function (input) {\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// Manual is faster than RegEx\n\t\t// http://bjorn.tipling.com/state-and-regular-expressions-in-javascript\n\t\t// http://jsperf.com/whitespace-character/5\n\t\tfunction isSpace(c) {\n\t\t\treturn (c === \"\\u0020\" || // space\n\t\t\tc === \"\\u0009\" || // horizontal tab\n\t\t\tc === \"\\u000A\" || // new line\n\t\t\tc === \"\\u000C\" || // form feed\n\t\t\tc === \"\\u000D\"); // carriage return\n\t\t}\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t\tmatch = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\n\t\t\t// (Don't use \\s, to avoid matching non-breaking space)\n\t\t\tregexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t\t\tregexTrailingCommas = /[,]+$/,\n\t\t\tregexNonNegativeInteger = /^\\d+$/,\n\n\t\t\t// ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t\t\t// Must include at least one digit.\n\t\t\t// According to spec tests any decimal point must be followed by a digit.\n\t\t\t// No leading plus sign is allowed.)\n\t\t\t// https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t\t\tregexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,\n\n\t\t\turl,\n\t\t\tdescriptors,\n\t\t\tcurrentDescriptor,\n\t\t\tstate,\n\t\t\tc,\n\n\t\t\t// 2. Let position be a pointer into input, initially pointing at the start\n\t\t\t// of the string.\n\t\t\tpos = 0,\n\n\t\t\t// 3. Let candidates be an initially empty source set.\n\t\t\tcandidates = [];\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\n\t\t/**\n\t\t * Tokenizes descriptor properties prior to parsing\n\t\t * Returns undefined.\n\t\t */\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t\t// Space character\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors and let current descriptor be the empty string.\n\t\t\t\t\t// Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t/**\n\t\t * Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t * @return undefined\n\t\t */\n\t\t// Declared outside of the while loop so that it's only created once.\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t\t// 10. Let width be absent.\n\t\t\t\t// 11. Let density be absent.\n\t\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t\tw, d, h, i,\n\t\t\t\tcandidate = {},\n\t\t\t\tdesc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tcandidates.push(candidate);\n\t\t\t} else if (console && console.log) {\n\t\t\t\tconsole.log(\"Invalid srcset descriptor found in '\" +\n\t\t\t\t\tinput + \"' at '\" + desc + \"'.\");\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t}\n}));\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","export default {}","'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n if (typeof line === 'number') {\n this.line = line\n this.column = column\n } else {\n this.line = line.line\n this.column = line.column\n this.endLine = column.line\n this.endColumn = column.column\n }\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : '<css input>'\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n if (terminalHighlight) {\n if (color) css = terminalHighlight(css)\n }\n\n let lines = css.split(/\\r?\\n/)\n let start = Math.max(this.line - 3, 0)\n let end = Math.min(this.line + 2, lines.length)\n\n let maxWidth = String(end).length\n\n let mark, aside\n if (color) {\n let { bold, gray, red } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n } else {\n mark = aside = str => str\n }\n\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n return mark('>') + aside(gutter) + line + '\\n ' + spacing + mark('^')\n }\n return ' ' + aside(gutter) + line\n })\n .join('\\n')\n }\n\n toString() {\n let code = this.showSourceCode()\n if (code) {\n code = '\\n\\n' + code + '\\n'\n }\n return this.name + ': ' + this.message + code\n }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n","'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n","'use strict'\n\nconst DEFAULT_RAW = {\n after: '\\n',\n beforeClose: '\\n',\n beforeComment: '\\n',\n beforeDecl: '\\n',\n beforeOpen: ' ',\n beforeRule: '\\n',\n colon: ': ',\n commentLeft: ' ',\n commentRight: ' ',\n emptyBody: '',\n indent: ' ',\n semicolon: false\n}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i]\n let before = this.raw(child, 'before')\n if (before) this.builder(before)\n this.stringify(child, last !== i || semicolon)\n }\n }\n\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n document(node) {\n this.body(node)\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeComment(root, node) {\n let value\n root.walkComments(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.walk(i => {\n if (i.type !== 'decl') {\n value = i.raws.between\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawColon(root) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '')\n return false\n }\n })\n return value\n }\n\n rawEmptyBody(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n let parts = i.raws.before.split('\\n')\n value = parts[parts.length - 1]\n value = value.replace(/\\S/g, '')\n return false\n }\n }\n })\n return value\n }\n\n rawSemicolon(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n","'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent\n } else if (i === 'source') {\n cloned[i] = value\n } else if (Array.isArray(value)) {\n cloned[i] = value.map(j => cloneNode(j, cloned))\n } else {\n if (type === 'object' && value !== null) value = cloneNode(value)\n cloned[i] = value\n }\n }\n\n return cloned\n}\n\nclass Node {\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\n }\n }\n\n addToError(error) {\n error.postcssNode = this\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n )\n }\n return error\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\n\n clone(overrides = {}) {\n let cloned = cloneNode(this)\n for (let name in overrides) {\n cloned[name] = overrides[name]\n }\n return cloned\n }\n\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\n\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts)\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n )\n }\n return new CssSyntaxError(message)\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\n\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation)\n } else if (opts.word) {\n stringRepresentation = this.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index, stringRepresentation)\n }\n return pos\n }\n\n positionInside(index, stringRepresentation) {\n let string = stringRepresentation || this.toString()\n let column = this.source.start.column\n let line = this.source.start.line\n\n for (let i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { column, line }\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\n\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n }\n let end = this.source.end\n ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n }\n : {\n column: start.column + 1,\n line: start.line\n }\n\n if (opts.word) {\n let stringRepresentation = this.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index, stringRepresentation)\n end = this.positionInside(index + opts.word.length, stringRepresentation)\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n }\n } else if (opts.index) {\n start = this.positionInside(opts.index)\n }\n\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n }\n } else if (typeof opts.endIndex === 'number') {\n end = this.positionInside(opts.endIndex)\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1)\n }\n }\n\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = { column: start.column + 1, line: start.line }\n }\n\n return { end, start }\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\n if (Array.isArray(value)) {\n fixed[name] = value.map(i => {\n if (typeof i === 'object' && i.toJSON) {\n return i.toJSON(null, inputs)\n } else {\n return i\n }\n })\n } else if (typeof value === 'object' && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs)\n } else if (name === 'source') {\n let inputId = inputs.get(value.input)\n if (inputId == null) {\n inputId = inputsNextIndex\n inputs.set(value.input, inputsNextIndex)\n inputsNextIndex++\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n }\n } else {\n fixed[name] = value\n }\n }\n\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n warn(result, text, opts) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n\n get proxyOf() {\n return this\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n","'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nmodule.exports = { nanoid, customAlphabet }\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\n let text = this.loadMap(opts.from, prev)\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from\n }\n if (this.mapFile) this.root = dirname(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\n\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n let baseUri = /^data:application\\/json;base64,/\n let charsetUri = /^data:application\\/json;charset=utf-?8,/\n let uri = /^data:application\\/json,/\n\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length))\n }\n\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev\n } else if (typeof prev === 'function') {\n let prevPath = prev(file)\n if (prevPath) {\n let map = this.loadFile(prevPath)\n if (!map) {\n throw new Error(\n 'Unable to load previous source map: ' + prevPath.toString()\n )\n }\n return map\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString()\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev)\n } else {\n throw new Error(\n 'Unsupported previous source map format: ' + prev.toString()\n )\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation)\n } else if (this.annotation) {\n let map = this.annotation\n if (file) map = join(dirname(file), map)\n return this.loadFile(map)\n }\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\nlet { isAbsolute, resolve } = require('path')\nlet { nanoid } = require('nanoid/non-secure')\n\nlet terminalHighlight = require('./terminal-highlight')\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\n\nlet fromOffsetCache = Symbol('fromOffsetCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nclass Input {\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts)\n if (map.text) {\n this.map = map\n let file = map.consumer().file\n if (!this.file && file) this.file = this.mapResolve(file)\n }\n }\n\n if (!this.file) {\n this.id = '<input css ' + nanoid(6) + '>'\n }\n if (this.map) this.map.file = this.from\n }\n\n error(message, line, column, opts = {}) {\n let result, endLine, endColumn\n\n if (line && typeof line === 'object') {\n let start = line\n let end = column\n if (typeof start.offset === 'number') {\n let pos = this.fromOffset(start.offset)\n line = pos.line\n column = pos.col\n } else {\n line = start.line\n column = start.column\n }\n if (typeof end.offset === 'number') {\n let pos = this.fromOffset(end.offset)\n endLine = pos.line\n endColumn = pos.col\n } else {\n endLine = end.line\n endColumn = end.column\n }\n } else if (!column) {\n let pos = this.fromOffset(line)\n line = pos.line\n column = pos.col\n }\n\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { column: origin.column, line: origin.line },\n origin.endLine === undefined\n ? origin.column\n : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { column, line },\n endLine === undefined ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { column, endColumn, endLine, line, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\n\n fromOffset(offset) {\n let lastLine, lineToIndex\n if (!this[fromOffsetCache]) {\n let lines = this.css.split('\\n')\n lineToIndex = new Array(lines.length)\n let prevIndex = 0\n\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n this[fromOffsetCache] = lineToIndex\n } else {\n lineToIndex = this[fromOffsetCache]\n }\n lastLine = lineToIndex[lineToIndex.length - 1]\n\n let min = 0\n if (offset >= lastLine) {\n min = lineToIndex.length - 1\n } else {\n let max = lineToIndex.length - 2\n let mid\n while (min < max) {\n mid = min + ((max - min) >> 1)\n if (offset < lineToIndex[mid]) {\n max = mid - 1\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1\n } else {\n min = mid\n break\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n }\n }\n\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ column, line })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\n\n toJSON() {\n let json = {}\n for (let name of ['hasBOM', 'css', 'file', 'id']) {\n if (this[name] != null) {\n json[name] = this[name]\n }\n }\n if (this.map) {\n json.map = { ...this.map }\n if (json.map.consumerCache) {\n json.map.consumerCache = undefined\n }\n }\n return json\n }\n\n get from() {\n return this.file || this.id\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { dirname, relative, resolve, sep } = require('path')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n this.originalCSS = cssString\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n\n this.memoizedFileURLs = new Map()\n this.memoizedPaths = new Map()\n this.memoizedURLs = new Map()\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n 'data:application/json;base64,' + this.toBase64(this.map.toString())\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation\n } else if (typeof this.mapOpts.annotation === 'function') {\n content = this.mapOpts.annotation(this.opts.to, this.root)\n } else {\n content = this.outputFile() + '.map'\n }\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text)\n if (map.sourcesContent) {\n map.sourcesContent = null\n }\n } else {\n map = prev.consumer()\n }\n\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.text.indexOf('# sourceMappingURL=') === 0) {\n this.root.removeChild(i)\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, '')\n }\n }\n\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n }\n\n generateMap() {\n if (this.root) {\n this.generateString()\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer()\n prev.file = this.outputFile()\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n })\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n })\n }\n\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.root && this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n\n let line = 1\n let column = 1\n\n let noSource = '<no source>'\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: ''\n }\n\n let lines, last\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.source.start.column - 1\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n this.map.addMapping(mapping)\n }\n }\n\n lines = str.match(/\\n/g)\n if (lines) {\n line += lines.length\n last = str.lastIndexOf('\\n')\n column = str.length - last\n } else {\n column += str.length\n }\n\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n let childless =\n node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n if (!childless || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.source.end.column - 1\n mapping.generated.line = line\n mapping.generated.column = column - 2\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n mapping.generated.line = line\n mapping.generated.column = column - 1\n this.map.addMapping(mapping)\n }\n }\n }\n })\n }\n\n isAnnotation() {\n if (this.isInline()) {\n return true\n }\n if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation\n }\n if (this.previous().length) {\n return this.previous().some(i => i.annotation)\n }\n return true\n }\n\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\n\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent\n }\n if (this.previous().length) {\n return this.previous().some(i => i.withContent())\n }\n return true\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n } else if (this.opts.from) {\n return this.path(this.opts.from)\n } else {\n return 'to.css'\n }\n }\n\n path(file) {\n if (this.mapOpts.absolute) return file\n if (file.charCodeAt(0) === 60 /* `<` */) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n let cached = this.memoizedPaths.get(file)\n if (cached) return cached\n\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n let path = relative(from, file)\n this.memoizedPaths.set(file, path)\n\n return path\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.originalCSS, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n let fromUrl = this.usesFileUrls\n ? this.toFileUrl(from)\n : this.toUrl(this.path(from))\n this.map.setSourceContent(fromUrl, node.source.input.css)\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n this.map.setSourceContent(from, this.css)\n }\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node.source.input.from)\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n return window.btoa(unescape(encodeURIComponent(str)))\n }\n }\n\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path)\n if (cached) return cached\n\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString()\n this.memoizedFileURLs.set(path, fileURL)\n\n return fileURL\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n }\n\n toUrl(path) {\n let cached = this.memoizedURLs.get(path)\n if (cached) return cached\n\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n this.memoizedURLs.set(path, url)\n\n return url\n }\n}\n\nmodule.exports = MapGenerator\n","'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet Declaration = require('./declaration')\nlet Comment = require('./comment')\nlet Node = require('./node')\n\nlet parse, Rule, AtRule, Root\n\nfunction cleanSource(nodes) {\n return nodes.map(i => {\n if (i.nodes) i.nodes = cleanSource(i.nodes)\n delete i.source\n return i\n })\n}\n\nfunction markDirtyUp(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markDirtyUp(i)\n }\n }\n}\n\nclass Container extends Node {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n index(child) {\n if (typeof child === 'number') return child\n if (child.proxyOf) child = child.proxyOf\n return this.proxyOf.nodes.indexOf(child)\n }\n\n insertAfter(exist, add) {\n let existIndex = this.index(exist)\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertBefore(exist, add) {\n let existIndex = this.index(exist)\n let type = existIndex === 0 ? 'prepend' : false\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes)\n } else if (typeof nodes === 'undefined') {\n nodes = []\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type === 'root' && this.type !== 'document') {\n nodes = nodes.nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type) {\n nodes = [nodes]\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation')\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value)\n }\n nodes = [new Declaration(nodes)]\n } else if (nodes.selector) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) markDirtyUp(i)\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/\\S/g, '')\n }\n }\n i.parent = this.proxyOf\n return i\n })\n\n return processed\n }\n\n prepend(...children) {\n children = children.reverse()\n for (let child of children) {\n let nodes = this.normalize(child, this.first, 'prepend').reverse()\n for (let node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\n\n this.walkDecls(decl => {\n if (opts.props && !opts.props.includes(decl.prop)) return\n if (opts.fast && !decl.value.includes(opts.fast)) return\n\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\n }\n\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name\n return this.walk((child, i) => {\n if (child.type === 'atrule') {\n return callback(child, i)\n }\n })\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i)\n }\n })\n }\n\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\n })\n }\n\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop\n return this.walk((child, i) => {\n if (child.type === 'decl') {\n return callback(child, i)\n }\n })\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i)\n }\n })\n }\n\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\n return this.walk((child, i) => {\n if (child.type === 'rule') {\n return callback(child, i)\n }\n })\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i)\n }\n })\n }\n\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n","'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts)\n this.line = range.start.line\n this.column = range.start.column\n this.endLine = range.end.line\n this.endColumn = range.end.column\n }\n\n for (let opt in opts) this[opt] = opts[opt]\n }\n\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n","'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = undefined\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\n\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin\n }\n }\n\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n\n get content() {\n return this.css\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n","'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, next, quote, content, escape\n let escaped, escapePos, prev, n, currentToken\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos\n do {\n next += 1\n code = css.charCodeAt(next)\n } while (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\n\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code)\n currentToken = [controlChar, controlChar, pos]\n break\n }\n\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\n next = pos\n do {\n escaped = false\n next = css.indexOf(')', next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos\n break\n } else {\n unclosed('bracket')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = ['(', '(', pos]\n } else {\n currentToken = ['brackets', content, pos, next]\n pos = next\n }\n }\n\n break\n }\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n next = pos\n do {\n escaped = false\n next = css.indexOf(quote, next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1\n break\n } else {\n unclosed('string')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\n\n case AT: {\n RE_AT_END.lastIndex = pos + 1\n RE_AT_END.test(css)\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_AT_END.lastIndex - 2\n }\n\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n case BACKSLASH: {\n next = pos\n escape = true\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1\n escape = !escape\n }\n code = css.charCodeAt(next + 1)\n if (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\n next += 1\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1\n }\n }\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length\n } else {\n unclosed('comment')\n }\n }\n\n currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n pos = next\n } else {\n RE_WORD_END.lastIndex = pos + 1\n RE_WORD_END.test(css)\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_WORD_END.lastIndex - 2\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n endOfFile,\n nextToken,\n position\n }\n}\n","'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before\n } else {\n delete sample.raws.before\n }\n } else if (this.first !== sample) {\n for (let node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n","'use strict'\n\nlet list = {\n comma(string) {\n return list.split(string, [','], true)\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\n for (let letter of string) {\n if (escape) {\n escape = false\n } else if (letter === '\\\\') {\n escape = true\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true\n prevQuote = letter\n } else if (letter === '(') {\n func += 1\n } else if (letter === ')') {\n if (func > 0) func -= 1\n } else if (func === 0) {\n if (separators.includes(letter)) split = true\n }\n\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet tokenizer = require('./tokenize')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\n\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i]\n let pos = token[3] || token[2]\n if (pos) return pos\n }\n}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n\n this.createTokenizer()\n this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\n if (type === '(' || type === '[') {\n brackets.push(type === '(' ? ')' : ']')\n } else if (type === '{' && brackets.length > 0) {\n brackets.push('}')\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n }\n\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n node.source.end.offset++\n this.semicolon = true\n break\n } else if (type === '{') {\n open = true\n break\n } else if (type === '}') {\n if (params.length > 0) {\n shift = params.length - 1\n prev = params[shift]\n while (prev && prev[0] === 'space') {\n prev = params[--shift]\n }\n if (prev) {\n node.source.end = this.getPosition(prev[3] || prev[2])\n node.source.end.offset++\n }\n }\n this.end(token)\n break\n } else {\n params.push(token)\n }\n } else {\n params.push(token)\n }\n\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\n let founded = 0\n let token\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j]\n if (token[0] !== 'space') {\n founded += 1\n if (founded === 2) break\n }\n }\n // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\n }\n\n colon(tokens) {\n let brackets = 0\n let token, type, prev\n for (let [i, element] of tokens.entries()) {\n token = element\n type = token[0]\n\n if (type === '(') {\n brackets += 1\n }\n if (type === ')') {\n brackets -= 1\n }\n if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token)\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue\n } else {\n return i\n }\n }\n\n prev = token\n }\n return false\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n\n let text = token[1].slice(2, -2)\n if (/^\\s*$/.test(text)) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n node.source.end.offset++\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\n\n let firstSpaces = []\n let next\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n firstSpaces.push(tokens.shift())\n }\n\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.raws.important = string\n break\n } else if (token[1].toLowerCase() === 'important') {\n let cache = tokens.slice(0)\n let str = ''\n for (let j = i; j > 0; j--) {\n let type = cache[j][0]\n if (str.trim().indexOf('!') === 0 && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().indexOf('!') === 0) {\n node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\n }\n\n doubleColon(token) {\n throw this.input.error(\n 'Double colon',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\n\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.semicolon = false\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2])\n this.current.source.end.offset++\n this.current = this.current.parent\n } else {\n this.unexpectedClose(token)\n }\n }\n\n endFile() {\n if (this.current.parent) this.unclosedBlock()\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.root.source.end = this.getPosition(this.tokenizer.position())\n }\n\n freeSemicolon(token) {\n this.spaces += token[1]\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1]\n if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces\n this.spaces = ''\n }\n }\n }\n\n // Helpers\n\n getPosition(offset) {\n let pos = this.input.fromOffset(offset)\n return {\n column: pos.col,\n line: pos.line,\n offset\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n input: this.input,\n start: this.getPosition(offset)\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n other(start) {\n let end = false\n let type = null\n let colon = false\n let bracket = null\n let brackets = []\n let customProperty = start[1].startsWith('--')\n\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token\n brackets.push(type === '(' ? ')' : ']')\n } else if (customProperty && colon && type === '{') {\n if (!bracket) bracket = token\n brackets.push('}')\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(tokens, customProperty)\n return\n } else {\n break\n }\n } else if (type === '{') {\n this.rule(tokens)\n return\n } else if (type === '}') {\n this.tokenizer.back(tokens.pop())\n end = true\n break\n } else if (type === ':') {\n colon = true\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n if (brackets.length === 0) bracket = null\n }\n\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0]\n if (token !== 'space' && token !== 'comment') break\n this.tokenizer.back(tokens.pop())\n }\n }\n this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\n }\n\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n if (type === 'space' && i === length - 1 && !customProperty) {\n clean = false\n } else if (type === 'comment') {\n prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === ',') {\n clean = false\n } else {\n value += token[1]\n }\n } else {\n clean = false\n }\n } else {\n value += token[1]\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], '')\n node.raws[prop] = { raw, value }\n }\n node[prop] = value\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\n\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n // Errors\n\n spacesAndCommentsFromStart(tokens) {\n let next\n let spaces = ''\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n spaces += tokens.shift()[1]\n }\n return spaces\n }\n\n spacesFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\n }\n\n unknownWord(tokens) {\n throw this.input.error(\n 'Unknown word',\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n )\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error(\n 'At-rule without name',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n}\n\nmodule.exports = Parser\n","'use strict'\n\nlet Container = require('./container')\nlet Parser = require('./parser')\nlet Input = require('./input')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.parse()\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet Container = require('./container')\nlet Document = require('./document')\nlet warnOnce = require('./warn-once')\nlet Result = require('./result')\nlet parse = require('./parse')\nlet Root = require('./root')\n\nconst TYPE_TO_CLASS_NAME = {\n atrule: 'AtRule',\n comment: 'Comment',\n decl: 'Declaration',\n document: 'Document',\n root: 'Root',\n rule: 'Rule'\n}\n\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n}\n\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.append) {\n return [\n type,\n type + '-' + key,\n CHILDREN,\n type + 'Exit',\n type + 'Exit-' + key\n ]\n } else if (key) {\n return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n } else if (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node,\n visitorIndex: 0,\n visitors: []\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = cleanMarks(css.root)\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {}\n if (!opts.map.inline) opts.map.inline = false\n opts.map.prev = css.map\n }\n } else {\n let parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, postcss, result: this.result }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\n })\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n if (this.processed) return Promise.resolve(this.result)\n if (!this.processing) {\n this.processing = this.runAsync()\n }\n return this.processing\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\n while (stack.length > 0) {\n let promise = this.visitTick(stack)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (e) {\n let node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(str, this.result.root, this.result.opts)\n let data = map.generate()\n this.result.css = data[0]\n this.result.map = data[1]\n\n return this.result\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this.css\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.each(child => {\n if (!child[isClean]) this.walkSync(child)\n })\n }\n } else {\n let visitors = this.listeners[event]\n if (visitors) {\n if (this.visitSync(visitors, node.toProxy())) return\n }\n }\n }\n }\n\n warnings() {\n return this.sync().warnings()\n }\n\n get content() {\n return this.stringify().content\n }\n\n get css() {\n return this.stringify().css\n }\n\n get map() {\n return this.stringify().map\n }\n\n get messages() {\n return this.sync().messages\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n return this.sync().root\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n","'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\nlet parse = require('./parse')\nconst Result = require('./result')\n\nclass NoWorkResult {\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n let root\n\n let str = stringify\n this.result = new Result(this._processor, root, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, root, this._opts, css)\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate()\n if (generatedCSS) {\n this.result.css = generatedCSS\n }\n if (generatedMap) {\n this.result.map = generatedMap\n }\n } else {\n map.clearAnnotation()\n this.result.css = map.css\n }\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this._css\n }\n\n warnings() {\n return []\n }\n\n get content() {\n return this.result.css\n }\n\n get css() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get messages() {\n return []\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n","'use strict'\n\nlet NoWorkResult = require('./no-work-result')\nlet LazyResult = require('./lazy-result')\nlet Document = require('./document')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.38'\n this.plugins = this.normalize(plugins)\n }\n\n normalize(plugins) {\n let normalized = []\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i()\n } else if (i.postcss) {\n i = i.postcss\n }\n\n if (typeof i === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins)\n } else if (typeof i === 'object' && i.postcssPlugin) {\n normalized.push(i)\n } else if (typeof i === 'function') {\n normalized.push(i)\n } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n 'in your PostCSS runner documentation.'\n )\n }\n } else {\n throw new Error(i + ' is not a PostCSS plugin')\n }\n }\n return normalized\n }\n\n process(css, opts = {}) {\n if (\n !this.plugins.length &&\n !opts.parser &&\n !opts.stringifier &&\n !opts.syntax\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet PreviousMap = require('./previous-map')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Input = require('./input')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source\n defaults.source = source\n if (inputId != null) {\n defaults.source.input = inputs[inputId]\n }\n }\n if (defaults.type === 'root') {\n return new Root(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n","'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet LazyResult = require('./lazy-result')\nlet Container = require('./container')\nlet Processor = require('./processor')\nlet stringify = require('./stringify')\nlet fromJSON = require('./fromJSON')\nlet Document = require('./document')\nlet Warning = require('./warning')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Result = require('./result.js')\nlet Input = require('./input')\nlet parse = require('./parse')\nlet list = require('./list')\nlet Rule = require('./rule')\nlet Root = require('./root')\nlet Node = require('./node')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n","const htmlparser = require('htmlparser2');\nconst escapeStringRegexp = require('escape-string-regexp');\nconst { isPlainObject } = require('is-plain-object');\nconst deepmerge = require('deepmerge');\nconst parseSrcset = require('parse-srcset');\nconst { parse: postcssParse } = require('postcss');\n// Tags that can conceivably represent stand-alone media.\nconst mediaTags = [\n 'img', 'audio', 'video', 'picture', 'svg',\n 'object', 'map', 'iframe', 'embed'\n];\n// Tags that are inherently vulnerable to being used in XSS attacks.\nconst vulnerableTags = [ 'script', 'style' ];\n\nfunction each(obj, cb) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n cb(obj[key], key);\n });\n }\n}\n\n// Avoid false positives with .__proto__, .hasOwnProperty, etc.\nfunction has(obj, key) {\n return ({}).hasOwnProperty.call(obj, key);\n}\n\n// Returns those elements of `a` for which `cb(a)` returns truthy\nfunction filter(a, cb) {\n const n = [];\n each(a, function(v) {\n if (cb(v)) {\n n.push(v);\n }\n });\n return n;\n}\n\nfunction isEmptyObject(obj) {\n for (const key in obj) {\n if (has(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nfunction stringifySrcset(parsedSrcset) {\n return parsedSrcset.map(function(part) {\n if (!part.url) {\n throw new Error('URL missing');\n }\n\n return (\n part.url +\n (part.w ? ` ${part.w}w` : '') +\n (part.h ? ` ${part.h}h` : '') +\n (part.d ? ` ${part.d}x` : '')\n );\n }).join(', ');\n}\n\nmodule.exports = sanitizeHtml;\n\n// A valid attribute name.\n// We use a tolerant definition based on the set of strings defined by\n// html.spec.whatwg.org/multipage/parsing.html#before-attribute-name-state\n// and html.spec.whatwg.org/multipage/parsing.html#attribute-name-state .\n// The characters accepted are ones which can be appended to the attribute\n// name buffer without triggering a parse error:\n// * unexpected-equals-sign-before-attribute-name\n// * unexpected-null-character\n// * unexpected-character-in-attribute-name\n// We exclude the empty string because it's impossible to get to the after\n// attribute name state with an empty attribute name buffer.\nconst VALID_HTML_ATTRIBUTE_NAME = /^[^\\0\\t\\n\\f\\r /<=>]+$/;\n\n// Ignore the _recursing flag; it's there for recursive\n// invocation as a guard against this exploit:\n// https://github.com/fb55/htmlparser2/issues/105\n\nfunction sanitizeHtml(html, options, _recursing) {\n if (html == null) {\n return '';\n }\n if (typeof html === 'number') {\n html = html.toString();\n }\n\n let result = '';\n // Used for hot swapping the result variable with an empty string in order to \"capture\" the text written to it.\n let tempResult = '';\n\n function Frame(tag, attribs) {\n const that = this;\n this.tag = tag;\n this.attribs = attribs || {};\n this.tagPosition = result.length;\n this.text = ''; // Node inner text\n this.mediaChildren = [];\n\n this.updateParentNodeText = function() {\n if (stack.length) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.text += that.text;\n }\n };\n\n this.updateParentNodeMediaChildren = function() {\n if (stack.length && mediaTags.includes(this.tag)) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.mediaChildren.push(this.tag);\n }\n };\n }\n\n options = Object.assign({}, sanitizeHtml.defaults, options);\n options.parser = Object.assign({}, htmlParserDefaults, options.parser);\n\n const tagAllowed = function (name) {\n return options.allowedTags === false || (options.allowedTags || []).indexOf(name) > -1;\n };\n\n // vulnerableTags\n vulnerableTags.forEach(function (tag) {\n if (tagAllowed(tag) && !options.allowVulnerableTags) {\n console.warn(`\\n\\n⚠️ Your \\`allowedTags\\` option includes, \\`${tag}\\`, which is inherently\\nvulnerable to XSS attacks. Please remove it from \\`allowedTags\\`.\\nOr, to disable this warning, add the \\`allowVulnerableTags\\` option\\nand ensure you are accounting for this risk.\\n\\n`);\n }\n });\n\n // Tags that contain something other than HTML, or where discarding\n // the text when the tag is disallowed makes sense for other reasons.\n // If we are not allowing these tags, we should drop their content too.\n // For other tags you would drop the tag but keep its content.\n const nonTextTagsArray = options.nonTextTags || [\n 'script',\n 'style',\n 'textarea',\n 'option'\n ];\n let allowedAttributesMap;\n let allowedAttributesGlobMap;\n if (options.allowedAttributes) {\n allowedAttributesMap = {};\n allowedAttributesGlobMap = {};\n each(options.allowedAttributes, function(attributes, tag) {\n allowedAttributesMap[tag] = [];\n const globRegex = [];\n attributes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else {\n allowedAttributesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedAttributesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n });\n }\n const allowedClassesMap = {};\n const allowedClassesGlobMap = {};\n const allowedClassesRegexMap = {};\n each(options.allowedClasses, function(classes, tag) {\n // Implicitly allows the class attribute\n if (allowedAttributesMap) {\n if (!has(allowedAttributesMap, tag)) {\n allowedAttributesMap[tag] = [];\n }\n allowedAttributesMap[tag].push('class');\n }\n\n allowedClassesMap[tag] = classes;\n\n if (Array.isArray(classes)) {\n const globRegex = [];\n allowedClassesMap[tag] = [];\n allowedClassesRegexMap[tag] = [];\n classes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else if (obj instanceof RegExp) {\n allowedClassesRegexMap[tag].push(obj);\n } else {\n allowedClassesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedClassesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n }\n });\n\n const transformTagsMap = {};\n let transformTagsAll;\n each(options.transformTags, function(transform, tag) {\n let transFun;\n if (typeof transform === 'function') {\n transFun = transform;\n } else if (typeof transform === 'string') {\n transFun = sanitizeHtml.simpleTransform(transform);\n }\n if (tag === '*') {\n transformTagsAll = transFun;\n } else {\n transformTagsMap[tag] = transFun;\n }\n });\n\n let depth;\n let stack;\n let skipMap;\n let transformMap;\n let skipText;\n let skipTextDepth;\n let addedText = false;\n\n initializeState();\n\n const parser = new htmlparser.Parser({\n onopentag: function(name, attribs) {\n // If `enforceHtmlBoundary` is `true` and this has found the opening\n // `html` tag, reset the state.\n if (options.enforceHtmlBoundary && name === 'html') {\n initializeState();\n }\n\n if (skipText) {\n skipTextDepth++;\n return;\n }\n const frame = new Frame(name, attribs);\n stack.push(frame);\n\n let skip = false;\n const hasText = !!frame.text;\n let transformedTag;\n if (has(transformTagsMap, name)) {\n transformedTag = transformTagsMap[name](name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n\n if (transformedTag.text !== undefined) {\n frame.innerText = transformedTag.text;\n }\n\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n if (transformTagsAll) {\n transformedTag = transformTagsAll(name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n\n if (!tagAllowed(name) || (options.disallowedTagsMode === 'recursiveEscape' && !isEmptyObject(skipMap)) || (options.nestingLimit != null && depth >= options.nestingLimit)) {\n skip = true;\n skipMap[depth] = true;\n if (options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') {\n if (nonTextTagsArray.indexOf(name) !== -1) {\n skipText = true;\n skipTextDepth = 1;\n }\n }\n skipMap[depth] = true;\n }\n depth++;\n if (skip) {\n if (options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') {\n // We want the contents but not this tag\n return;\n }\n tempResult = result;\n result = '';\n }\n result += '<' + name;\n\n if (name === 'script') {\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n frame.innerText = '';\n }\n }\n\n if (!allowedAttributesMap || has(allowedAttributesMap, name) || allowedAttributesMap['*']) {\n each(attribs, function(value, a) {\n if (!VALID_HTML_ATTRIBUTE_NAME.test(a)) {\n // This prevents part of an attribute name in the output from being\n // interpreted as the end of an attribute, or end of a tag.\n delete frame.attribs[a];\n return;\n }\n // If the value is empty, check if the attribute is in the allowedEmptyAttributes array.\n // If it is not in the allowedEmptyAttributes array, and it is a known non-boolean attribute, delete it\n // List taken from https://html.spec.whatwg.org/multipage/indices.html#attributes-3\n if (value === '' && (!options.allowedEmptyAttributes.includes(a)) &&\n (options.nonBooleanAttributes.includes(a) || options.nonBooleanAttributes.includes('*'))) {\n delete frame.attribs[a];\n return;\n }\n // check allowedAttributesMap for the element and attribute and modify the value\n // as necessary if there are specific values defined.\n let passedAllowedAttributesMapCheck = false;\n if (!allowedAttributesMap ||\n (has(allowedAttributesMap, name) && allowedAttributesMap[name].indexOf(a) !== -1) ||\n (allowedAttributesMap['*'] && allowedAttributesMap['*'].indexOf(a) !== -1) ||\n (has(allowedAttributesGlobMap, name) && allowedAttributesGlobMap[name].test(a)) ||\n (allowedAttributesGlobMap['*'] && allowedAttributesGlobMap['*'].test(a))) {\n passedAllowedAttributesMapCheck = true;\n } else if (allowedAttributesMap && allowedAttributesMap[name]) {\n for (const o of allowedAttributesMap[name]) {\n if (isPlainObject(o) && o.name && (o.name === a)) {\n passedAllowedAttributesMapCheck = true;\n let newValue = '';\n if (o.multiple === true) {\n // verify the values that are allowed\n const splitStrArray = value.split(' ');\n for (const s of splitStrArray) {\n if (o.values.indexOf(s) !== -1) {\n if (newValue === '') {\n newValue = s;\n } else {\n newValue += ' ' + s;\n }\n }\n }\n } else if (o.values.indexOf(value) >= 0) {\n // verified an allowed value matches the entire attribute value\n newValue = value;\n }\n value = newValue;\n }\n }\n }\n if (passedAllowedAttributesMapCheck) {\n if (options.allowedSchemesAppliedToAttributes.indexOf(a) !== -1) {\n if (naughtyHref(name, value)) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'script' && a === 'src') {\n\n let allowed = true;\n\n try {\n const parsed = parseUrl(value);\n\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n const allowedHostname = (options.allowedScriptHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedScriptDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n allowed = false;\n }\n\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'iframe' && a === 'src') {\n let allowed = true;\n try {\n const parsed = parseUrl(value);\n\n if (parsed.isRelativeUrl) {\n // default value of allowIframeRelativeUrls is true\n // unless allowedIframeHostnames or allowedIframeDomains specified\n allowed = has(options, 'allowIframeRelativeUrls')\n ? options.allowIframeRelativeUrls\n : (!options.allowedIframeHostnames && !options.allowedIframeDomains);\n } else if (options.allowedIframeHostnames || options.allowedIframeDomains) {\n const allowedHostname = (options.allowedIframeHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedIframeDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n // Unparseable iframe src\n allowed = false;\n }\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'srcset') {\n try {\n let parsed = parseSrcset(value);\n parsed.forEach(function(value) {\n if (naughtyHref('srcset', value.url)) {\n value.evil = true;\n }\n });\n parsed = filter(parsed, function(v) {\n return !v.evil;\n });\n if (!parsed.length) {\n delete frame.attribs[a];\n return;\n } else {\n value = stringifySrcset(filter(parsed, function(v) {\n return !v.evil;\n }));\n frame.attribs[a] = value;\n }\n } catch (e) {\n // Unparseable srcset\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'class') {\n const allowedSpecificClasses = allowedClassesMap[name];\n const allowedWildcardClasses = allowedClassesMap['*'];\n const allowedSpecificClassesGlob = allowedClassesGlobMap[name];\n const allowedSpecificClassesRegex = allowedClassesRegexMap[name];\n const allowedWildcardClassesGlob = allowedClassesGlobMap['*'];\n const allowedClassesGlobs = [\n allowedSpecificClassesGlob,\n allowedWildcardClassesGlob\n ]\n .concat(allowedSpecificClassesRegex)\n .filter(function (t) {\n return t;\n });\n if (allowedSpecificClasses && allowedWildcardClasses) {\n value = filterClasses(value, deepmerge(allowedSpecificClasses, allowedWildcardClasses), allowedClassesGlobs);\n } else {\n value = filterClasses(value, allowedSpecificClasses || allowedWildcardClasses, allowedClassesGlobs);\n }\n if (!value.length) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'style') {\n if (options.parseStyleAttributes) {\n try {\n const abstractSyntaxTree = postcssParse(name + ' {' + value + '}', { map: false });\n const filteredAST = filterCss(abstractSyntaxTree, options.allowedStyles);\n\n value = stringifyStyleAttributes(filteredAST);\n\n if (value.length === 0) {\n delete frame.attribs[a];\n return;\n }\n } catch (e) {\n if (typeof window !== 'undefined') {\n console.warn('Failed to parse \"' + name + ' {' + value + '}' + '\", If you\\'re running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547');\n }\n delete frame.attribs[a];\n return;\n }\n } else if (options.allowedStyles) {\n throw new Error('allowedStyles option cannot be used together with parseStyleAttributes: false.');\n }\n }\n result += ' ' + a;\n if (value && value.length) {\n result += '=\"' + escapeHtml(value, true) + '\"';\n } else if (options.allowedEmptyAttributes.includes(a)) {\n result += '=\"\"';\n }\n } else {\n delete frame.attribs[a];\n }\n });\n }\n if (options.selfClosing.indexOf(name) !== -1) {\n result += ' />';\n } else {\n result += '>';\n if (frame.innerText && !hasText && !options.textFilter) {\n result += escapeHtml(frame.innerText);\n addedText = true;\n }\n }\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n },\n ontext: function(text) {\n if (skipText) {\n return;\n }\n const lastFrame = stack[stack.length - 1];\n let tag;\n\n if (lastFrame) {\n tag = lastFrame.tag;\n // If inner text was set by transform function then let's use it\n text = lastFrame.innerText !== undefined ? lastFrame.innerText : text;\n }\n\n if (options.disallowedTagsMode === 'completelyDiscard' && !tagAllowed(tag)) {\n text = '';\n } else if ((options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') && ((tag === 'script') || (tag === 'style'))) {\n // htmlparser2 gives us these as-is. Escaping them ruins the content. Allowing\n // script tags is, by definition, game over for XSS protection, so if that's\n // your concern, don't allow them. The same is essentially true for style tags\n // which have their own collection of XSS vectors.\n result += text;\n } else {\n const escaped = escapeHtml(text, false);\n if (options.textFilter && !addedText) {\n result += options.textFilter(escaped, tag);\n } else if (!addedText) {\n result += escaped;\n }\n }\n if (stack.length) {\n const frame = stack[stack.length - 1];\n frame.text += text;\n }\n },\n onclosetag: function(name, isImplied) {\n\n if (skipText) {\n skipTextDepth--;\n if (!skipTextDepth) {\n skipText = false;\n } else {\n return;\n }\n }\n\n const frame = stack.pop();\n if (!frame) {\n // Do not crash on bad markup\n return;\n }\n\n if (frame.tag !== name) {\n // Another case of bad markup.\n // Push to stack, so that it will be used in future closing tags.\n stack.push(frame);\n return;\n }\n\n skipText = options.enforceHtmlBoundary ? name === 'html' : false;\n depth--;\n const skip = skipMap[depth];\n if (skip) {\n delete skipMap[depth];\n if (options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') {\n frame.updateParentNodeText();\n return;\n }\n tempResult = result;\n result = '';\n }\n\n if (transformMap[depth]) {\n name = transformMap[depth];\n delete transformMap[depth];\n }\n\n if (options.exclusiveFilter && options.exclusiveFilter(frame)) {\n result = result.substr(0, frame.tagPosition);\n return;\n }\n\n frame.updateParentNodeMediaChildren();\n frame.updateParentNodeText();\n\n if (\n // Already output />\n options.selfClosing.indexOf(name) !== -1 ||\n // Escaped tag, closing tag is implied\n (isImplied && !tagAllowed(name) && [ 'escape', 'recursiveEscape' ].indexOf(options.disallowedTagsMode) >= 0)\n ) {\n if (skip) {\n result = tempResult;\n tempResult = '';\n }\n return;\n }\n\n result += '</' + name + '>';\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n addedText = false;\n }\n }, options.parser);\n parser.write(html);\n parser.end();\n\n return result;\n\n function initializeState() {\n result = '';\n depth = 0;\n stack = [];\n skipMap = {};\n transformMap = {};\n skipText = false;\n skipTextDepth = 0;\n }\n\n function escapeHtml(s, quote) {\n if (typeof (s) !== 'string') {\n s = s + '';\n }\n if (options.parser.decodeEntities) {\n s = s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n }\n // TODO: this is inadequate because it will pass `&0;`. This approach\n // will not work, each & must be considered with regard to whether it\n // is followed by a 100% syntactically valid entity or not, and escaped\n // if it is not. If this bothers you, don't set parser.decodeEntities\n // to false. (The default is true.)\n s = s.replace(/&(?![a-zA-Z0-9#]{1,20};)/g, '&') // Match ampersands not part of existing HTML entity\n .replace(/</g, '<')\n .replace(/>/g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n return s;\n }\n\n function naughtyHref(name, href) {\n // Browsers ignore character codes of 32 (space) and below in a surprising\n // number of situations. Start reading here:\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#Embedded_tab\n // eslint-disable-next-line no-control-regex\n href = href.replace(/[\\x00-\\x20]+/g, '');\n // Clobber any comments in URLs, which the browser might\n // interpret inside an XML data island, allowing\n // a javascript: URL to be snuck through\n while (true) {\n const firstIndex = href.indexOf('<!--');\n if (firstIndex === -1) {\n break;\n }\n const lastIndex = href.indexOf('-->', firstIndex + 4);\n if (lastIndex === -1) {\n break;\n }\n href = href.substring(0, firstIndex) + href.substring(lastIndex + 3);\n }\n // Case insensitive so we don't get faked out by JAVASCRIPT #1\n // Allow more characters after the first so we don't get faked\n // out by certain schemes browsers accept\n const matches = href.match(/^([a-zA-Z][a-zA-Z0-9.\\-+]*):/);\n if (!matches) {\n // Protocol-relative URL starting with any combination of '/' and '\\'\n if (href.match(/^[/\\\\]{2}/)) {\n return !options.allowProtocolRelative;\n }\n\n // No scheme\n return false;\n }\n const scheme = matches[1].toLowerCase();\n\n if (has(options.allowedSchemesByTag, name)) {\n return options.allowedSchemesByTag[name].indexOf(scheme) === -1;\n }\n\n return !options.allowedSchemes || options.allowedSchemes.indexOf(scheme) === -1;\n }\n\n function parseUrl(value) {\n value = value.replace(/^(\\w+:)?\\s*[\\\\/]\\s*[\\\\/]/, '$1//');\n if (value.startsWith('relative:')) {\n // An attempt to exploit our workaround for base URLs being\n // mandatory for relative URL validation in the WHATWG\n // URL parser, reject it\n throw new Error('relative: exploit attempt');\n }\n // naughtyHref is in charge of whether protocol relative URLs\n // are cool. Here we are concerned just with allowed hostnames and\n // whether to allow relative URLs.\n //\n // Build a placeholder \"base URL\" against which any reasonable\n // relative URL may be parsed successfully\n let base = 'relative://relative-site';\n for (let i = 0; (i < 100); i++) {\n base += `/${i}`;\n }\n\n const parsed = new URL(value, base);\n\n const isRelativeUrl = parsed && parsed.hostname === 'relative-site' && parsed.protocol === 'relative:';\n return {\n isRelativeUrl,\n url: parsed\n };\n }\n /**\n * Filters user input css properties by allowlisted regex attributes.\n * Modifies the abstractSyntaxTree object.\n *\n * @param {object} abstractSyntaxTree - Object representation of CSS attributes.\n * @property {array[Declaration]} abstractSyntaxTree.nodes[0] - Each object cointains prop and value key, i.e { prop: 'color', value: 'red' }.\n * @param {object} allowedStyles - Keys are properties (i.e color), value is list of permitted regex rules (i.e /green/i).\n * @return {object} - The modified tree.\n */\n function filterCss(abstractSyntaxTree, allowedStyles) {\n if (!allowedStyles) {\n return abstractSyntaxTree;\n }\n\n const astRules = abstractSyntaxTree.nodes[0];\n let selectedRule;\n\n // Merge global and tag-specific styles into new AST.\n if (allowedStyles[astRules.selector] && allowedStyles['*']) {\n selectedRule = deepmerge(\n allowedStyles[astRules.selector],\n allowedStyles['*']\n );\n } else {\n selectedRule = allowedStyles[astRules.selector] || allowedStyles['*'];\n }\n\n if (selectedRule) {\n abstractSyntaxTree.nodes[0].nodes = astRules.nodes.reduce(filterDeclarations(selectedRule), []);\n }\n\n return abstractSyntaxTree;\n }\n\n /**\n * Extracts the style attributes from an AbstractSyntaxTree and formats those\n * values in the inline style attribute format.\n *\n * @param {AbstractSyntaxTree} filteredAST\n * @return {string} - Example: \"color:yellow;text-align:center !important;font-family:helvetica;\"\n */\n function stringifyStyleAttributes(filteredAST) {\n return filteredAST.nodes[0].nodes\n .reduce(function(extractedAttributes, attrObject) {\n extractedAttributes.push(\n `${attrObject.prop}:${attrObject.value}${attrObject.important ? ' !important' : ''}`\n );\n return extractedAttributes;\n }, [])\n .join(';');\n }\n\n /**\n * Filters the existing attributes for the given property. Discards any attributes\n * which don't match the allowlist.\n *\n * @param {object} selectedRule - Example: { color: red, font-family: helvetica }\n * @param {array} allowedDeclarationsList - List of declarations which pass the allowlist.\n * @param {object} attributeObject - Object representing the current css property.\n * @property {string} attributeObject.type - Typically 'declaration'.\n * @property {string} attributeObject.prop - The CSS property, i.e 'color'.\n * @property {string} attributeObject.value - The corresponding value to the css property, i.e 'red'.\n * @return {function} - When used in Array.reduce, will return an array of Declaration objects\n */\n function filterDeclarations(selectedRule) {\n return function (allowedDeclarationsList, attributeObject) {\n // If this property is allowlisted...\n if (has(selectedRule, attributeObject.prop)) {\n const matchesRegex = selectedRule[attributeObject.prop].some(function(regularExpression) {\n return regularExpression.test(attributeObject.value);\n });\n\n if (matchesRegex) {\n allowedDeclarationsList.push(attributeObject);\n }\n }\n return allowedDeclarationsList;\n };\n }\n\n function filterClasses(classes, allowed, allowedGlobs) {\n if (!allowed) {\n // The class attribute is allowed without filtering on this tag\n return classes;\n }\n classes = classes.split(/\\s+/);\n return classes.filter(function(clss) {\n return allowed.indexOf(clss) !== -1 || allowedGlobs.some(function(glob) {\n return glob.test(clss);\n });\n }).join(' ');\n }\n}\n\n// Defaults are accessible to you so that you can use them as a starting point\n// programmatically if you wish\n\nconst htmlParserDefaults = {\n decodeEntities: true\n};\nsanitizeHtml.defaults = {\n allowedTags: [\n // Sections derived from MDN element categories and limited to the more\n // benign categories.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element\n // Content sectioning\n 'address', 'article', 'aside', 'footer', 'header',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup',\n 'main', 'nav', 'section',\n // Text content\n 'blockquote', 'dd', 'div', 'dl', 'dt', 'figcaption', 'figure',\n 'hr', 'li', 'main', 'ol', 'p', 'pre', 'ul',\n // Inline text semantics\n 'a', 'abbr', 'b', 'bdi', 'bdo', 'br', 'cite', 'code', 'data', 'dfn',\n 'em', 'i', 'kbd', 'mark', 'q',\n 'rb', 'rp', 'rt', 'rtc', 'ruby',\n 's', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time', 'u', 'var', 'wbr',\n // Table content\n 'caption', 'col', 'colgroup', 'table', 'tbody', 'td', 'tfoot', 'th',\n 'thead', 'tr'\n ],\n // Tags that cannot be boolean\n nonBooleanAttributes: [\n 'abbr', 'accept', 'accept-charset', 'accesskey', 'action',\n 'allow', 'alt', 'as', 'autocapitalize', 'autocomplete',\n 'blocking', 'charset', 'cite', 'class', 'color', 'cols',\n 'colspan', 'content', 'contenteditable', 'coords', 'crossorigin',\n 'data', 'datetime', 'decoding', 'dir', 'dirname', 'download',\n 'draggable', 'enctype', 'enterkeyhint', 'fetchpriority', 'for',\n 'form', 'formaction', 'formenctype', 'formmethod', 'formtarget',\n 'headers', 'height', 'hidden', 'high', 'href', 'hreflang',\n 'http-equiv', 'id', 'imagesizes', 'imagesrcset', 'inputmode',\n 'integrity', 'is', 'itemid', 'itemprop', 'itemref', 'itemtype',\n 'kind', 'label', 'lang', 'list', 'loading', 'low', 'max',\n 'maxlength', 'media', 'method', 'min', 'minlength', 'name',\n 'nonce', 'optimum', 'pattern', 'ping', 'placeholder', 'popover',\n 'popovertarget', 'popovertargetaction', 'poster', 'preload',\n 'referrerpolicy', 'rel', 'rows', 'rowspan', 'sandbox', 'scope',\n 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src',\n 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'style',\n 'tabindex', 'target', 'title', 'translate', 'type', 'usemap',\n 'value', 'width', 'wrap',\n // Event handlers\n 'onauxclick', 'onafterprint', 'onbeforematch', 'onbeforeprint',\n 'onbeforeunload', 'onbeforetoggle', 'onblur', 'oncancel',\n 'oncanplay', 'oncanplaythrough', 'onchange', 'onclick', 'onclose',\n 'oncontextlost', 'oncontextmenu', 'oncontextrestored', 'oncopy',\n 'oncuechange', 'oncut', 'ondblclick', 'ondrag', 'ondragend',\n 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart',\n 'ondrop', 'ondurationchange', 'onemptied', 'onended',\n 'onerror', 'onfocus', 'onformdata', 'onhashchange', 'oninput',\n 'oninvalid', 'onkeydown', 'onkeypress', 'onkeyup',\n 'onlanguagechange', 'onload', 'onloadeddata', 'onloadedmetadata',\n 'onloadstart', 'onmessage', 'onmessageerror', 'onmousedown',\n 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout',\n 'onmouseover', 'onmouseup', 'onoffline', 'ononline', 'onpagehide',\n 'onpageshow', 'onpaste', 'onpause', 'onplay', 'onplaying',\n 'onpopstate', 'onprogress', 'onratechange', 'onreset', 'onresize',\n 'onrejectionhandled', 'onscroll', 'onscrollend',\n 'onsecuritypolicyviolation', 'onseeked', 'onseeking', 'onselect',\n 'onslotchange', 'onstalled', 'onstorage', 'onsubmit', 'onsuspend',\n 'ontimeupdate', 'ontoggle', 'onunhandledrejection', 'onunload',\n 'onvolumechange', 'onwaiting', 'onwheel'\n ],\n disallowedTagsMode: 'discard',\n allowedAttributes: {\n a: [ 'href', 'name', 'target' ],\n // We don't currently allow img itself by default, but\n // these attributes would make sense if we did.\n img: [ 'src', 'srcset', 'alt', 'title', 'width', 'height', 'loading' ]\n },\n allowedEmptyAttributes: [\n 'alt'\n ],\n // Lots of these won't come up by default because we don't allow them\n selfClosing: [ 'img', 'br', 'hr', 'area', 'base', 'basefont', 'input', 'link', 'meta' ],\n // URL schemes we permit\n allowedSchemes: [ 'http', 'https', 'ftp', 'mailto', 'tel' ],\n allowedSchemesByTag: {},\n allowedSchemesAppliedToAttributes: [ 'href', 'src', 'cite' ],\n allowProtocolRelative: true,\n enforceHtmlBoundary: false,\n parseStyleAttributes: true\n};\n\nsanitizeHtml.simpleTransform = function(newTagName, newAttribs, merge) {\n merge = (merge === undefined) ? true : merge;\n newAttribs = newAttribs || {};\n\n return function(tagName, attribs) {\n let attrib;\n if (merge) {\n for (attrib in newAttribs) {\n attribs[attrib] = newAttribs[attrib];\n }\n } else {\n attribs = newAttribs;\n }\n\n return {\n tagName: newTagName,\n attribs: attribs\n };\n };\n};\n","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","import styled from \"styled-components\";\n\nconst elementTagFontSize = {\n h1: \"1.75rem;\",\n h2: \"1.5rem;\",\n h3: \"1.25rem;\",\n h4: \"1.15rem;\",\n};\n\nexport const ElementTag = styled.div<{ $elementTag: string }>`\n font-size: ${({ $elementTag }) =>\n elementTagFontSize[$elementTag as keyof typeof elementTagFontSize] ||\n \"1rem\"};\n`;\n\nexport const HtmlContent = styled.div`\n h1,\n h2,\n h3,\n h4 {\n margin-bottom: 1rem;\n }\n\n h1 {\n font-size: 1.75rem;\n }\n\n h2 {\n font-size: 1.5rem;\n }\n\n h3 {\n font-size: 1.25rem;\n }\n\n h4 {\n font-size: 1.15rem;\n }\n\n p {\n font-size: \"1rem\";\n\n &:not(:last-of-type) {\n margin-bottom: 1rem;\n }\n }\n`;\n","import styled from \"styled-components\";\n\nconst buttonGroupGap = {\n sm: \"0.5rem\",\n md: \"1rem\",\n lg: \"1.25rem\",\n xl: \"1.5rem\",\n};\n\nexport const Wrapper = styled.div<{\n $cs: any;\n $variant: string;\n $spacing: \"sm\" | \"md\" | \"lg\" | \"xl\";\n}>`\n display: ${({ $variant }) =>\n $variant === \"inline\" || $variant === \"inline-space-between\"\n ? \"flex\"\n : \"block\"};\n justify-content: ${({ $variant }) =>\n $variant === \"inline\" ? \"flex-start\" : \"space-between\"};\n gap: ${({ $spacing }) => $spacing && buttonGroupGap[$spacing]};\n\n ${({ $cs }) => $cs}\n`;\n","import styled from \"styled-components\";\n\nconst gapSize = {\n xs: \"0.25rem\",\n sm: \"0.5rem\",\n md: \"1rem\",\n lg: \"1.25rem\",\n};\n\nexport const Wrapper = styled.fieldset<{ $cs: any }>`\n border: none;\n ${({ $cs }) => $cs}\n`;\nexport const CheckboxGroupHeading = styled.legend`\n font-size: 1rem;\n font-weight: 600;\n margin-bottom: 0.5rem;\n`;\n\nexport const Container = styled.div<{\n $inline: boolean;\n $gap: \"xs\" | \"sm\" | \"md\" | \"lg\";\n}>`\n display: flex;\n gap: ${({ $gap }) => gapSize[$gap]};\n flex-direction: ${({ $inline }) => ($inline ? \"row\" : \"column\")};\n\n .ds-checkbox {\n display: inline-block;\n width: fit-content;\n }\n`;\n","import {\n Children,\n cloneElement,\n createContext,\n useContext,\n useEffect,\n useState,\n useRef,\n ReactElement,\n} from \"react\";\nimport classNames from \"classnames\";\n\n// Components\nimport { Checkbox } from \"../Checkbox/Checkbox\";\n\n// Types\nimport type {\n CheckboxGroupProps,\n TCheckboxGroupItem,\n} from \"./CheckboxGroup.types\";\n\n// Styles\nimport {\n CheckboxGroupHeading,\n Container,\n Wrapper,\n} from \"./CheckboxGroup.styles\";\n\nconst CheckboxGroupContext = createContext<any>(null);\n\ntype TCheckListGroup = {\n children: ReactElement[];\n inline: boolean;\n isDisabled: boolean;\n gap: \"xs\" | \"sm\" | \"md\" | \"lg\";\n};\n\nfunction useIsIndeterminate(checkboxRef) {\n const [, setIsIndeterminate] = useState(null);\n useEffect(() => {\n setIsIndeterminate(checkboxRef.current.indeterminate);\n }, [checkboxRef.current.indeterminate]);\n}\n\nfunction getChildData(children: ReactElement[]) {\n let allChildItemsAreChecked = true;\n let allChildItemsAreUnChecked = true;\n let numberOfChildItems = 0;\n\n Children.forEach(children, (child: ReactElement) => {\n if (child.type === Checkbox) {\n numberOfChildItems++;\n if (child.props.isChecked) {\n allChildItemsAreUnChecked = false;\n } else {\n allChildItemsAreChecked = false;\n }\n }\n });\n\n if (numberOfChildItems === 0) {\n allChildItemsAreChecked = false;\n }\n\n return {\n numberOfChildItems,\n allChildItemsAreChecked,\n allChildItemsAreUnChecked,\n };\n}\n\nfunction setIsIndeterminate(children: any, checkboxRef: any) {\n const {\n numberOfChildItems,\n allChildItemsAreChecked,\n allChildItemsAreUnChecked,\n } = getChildData(children);\n\n if (numberOfChildItems === 0 && checkboxRef.current) {\n checkboxRef.current.indeterminate = true;\n } else if (\n numberOfChildItems > 0 &&\n (allChildItemsAreChecked || allChildItemsAreUnChecked)\n ) {\n checkboxRef.current.indeterminate = false;\n } else if (numberOfChildItems > 0) {\n checkboxRef.current.indeterminate = true;\n }\n}\n\nfunction CheckListGroup({\n children,\n isDisabled,\n inline = false,\n gap = \"md\",\n}: Readonly<TCheckListGroup>) {\n const onChange = useContext(CheckboxGroupContext);\n const checkboxRef = useRef({});\n useIsIndeterminate(checkboxRef);\n\n setIsIndeterminate(children, checkboxRef);\n const { allChildItemsAreChecked } = getChildData(children);\n\n function calculateChildren() {\n const childItems: ReactElement[] = [];\n Children.forEach(children, (child) => {\n if (child.type === Checkbox) {\n childItems.push(child);\n }\n });\n\n if (!childItems.length) {\n return;\n }\n\n const allChildItemsAreChecked =\n childItems.filter((childItem) => childItem.props.isChecked).length ===\n childItems.length;\n\n let childItemsToChange: ReactElement[] = [];\n if (allChildItemsAreChecked) {\n childItemsToChange = childItems.filter(\n (childItem) => !childItem.props.isDisabled\n );\n } else {\n childItemsToChange = childItems.filter(\n (childItem) => !childItem.props.isChecked && !childItem.props.isDisabled\n );\n }\n\n onChange(childItemsToChange);\n }\n\n const selectAll = (\n <Checkbox\n className=\"ds-checkbox-group__checkbox-0\"\n isChecked={allChildItemsAreChecked}\n isDisabled={isDisabled}\n label=\"All\"\n mode=\"indeterminate\"\n name=\"All\"\n onChange={calculateChildren}\n ref={checkboxRef as any}\n type=\"checkbox\"\n />\n );\n\n const modifiedChildren: ReactElement[] = [];\n Children.forEach(children, (child, i) => {\n const newProps = {\n key: i,\n };\n\n if (child.type === Checkbox) {\n (newProps as any).onChange = () => onChange([child]);\n }\n\n modifiedChildren.push(cloneElement(child, newProps));\n });\n\n return (\n <Container $inline={inline} $gap={gap}>\n {selectAll}\n {modifiedChildren}\n </Container>\n );\n}\n\nexport const CheckboxGroup = ({\n className,\n cs,\n inline = false,\n isDisabled,\n items,\n gap = \"md\",\n onChange,\n platform = \"octopus-online\",\n title,\n ...rest\n}: CheckboxGroupProps) => {\n return (\n <CheckboxGroupContext.Provider value={onChange}>\n <Wrapper\n $cs={cs}\n className={classNames(\"ds-checkbox-group\", className)}\n data-platform={platform}\n {...rest}\n >\n {title && (\n <CheckboxGroupHeading className=\"ds-checkbox-group__title\">\n {title}:\n </CheckboxGroupHeading>\n )}\n <CheckListGroup isDisabled={isDisabled} inline={inline} gap={gap}>\n {items.map(\n ({ id, title, isChecked, isDisabled }: TCheckboxGroupItem) => (\n <Checkbox\n name={title!}\n className={`ds-checkbox-group__checkbox-${id}`}\n id={id as string}\n isChecked={isChecked}\n isDisabled={isDisabled}\n key={id}\n label={title}\n />\n )\n )}\n </CheckListGroup>\n </Wrapper>\n </CheckboxGroupContext.Provider>\n );\n};\n","import styled from \"styled-components\";\n\nimport { neutral } from \"@/utils/styles/colors\";\n\nconst displayProperty = {\n top: \"block\",\n left: \"inline-block\",\n right: \"flex\",\n};\n\nexport const Wrapper = styled.label<{ $labelPosition: string }>`\n display: ${({ $labelPosition }) =>\n displayProperty[$labelPosition as keyof typeof displayProperty]};\n`;\n\nexport const InputWrapper = styled.div<{ $labelPosition: string }>`\n position: relative;\n ${({ $labelPosition }) =>\n ($labelPosition === \"left\" || $labelPosition === \"right\") &&\n \"flex: 1 1 auto\"};\n\n .validation-icon {\n position: absolute;\n top: 0.75rem;\n }\n`;\n\nexport const Input = styled.input<{\n $platform: string;\n $error: boolean;\n $showBackground: boolean;\n $iconPosition: \"left\" | \"right\";\n $iconExists?: boolean;\n}>`\n background-color: ${({ theme, $platform }) =>\n theme[$platform].input.background};\n border-color: ${({ theme, $platform, $error }) =>\n $error ? theme[$platform].colors.error : theme[$platform].input.border};\n border-radius: 0.375rem;\n border-style: solid;\n border-width: ${({ $error }) => ($error ? \"0.125rem\" : \"0.0625rem\")};\n box-sizing: border-box;\n color: ${({ theme, $platform }) => theme[$platform].input[\"input-text\"]};\n font-size: 1rem;\n height: 3rem;\n outline: transparent;\n padding: 1rem;\n ${({ $iconPosition, $iconExists }) =>\n $iconPosition === \"right\" && $iconExists && \"padding-right: 2.5rem;\"}\n width: 100%;\n text-indent: ${({ $iconExists, $iconPosition }) =>\n $iconExists && $iconPosition === \"left\" ? \"2.5rem\" : \"0.125rem\"};\n\n &:focus {\n border-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.focus.outline};\n outline-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.focus.outline};\n box-shadow: 0 0 0 0.2rem\n ${({ theme, $platform }) => theme[$platform].calendar.focus[\"box-shadow\"]};\n }\n\n &:disabled {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].input.disabled};\n border: transparent;\n }\n`;\n\nconst setMargin = (iconPosition: string) => {\n switch (iconPosition) {\n case \"left\":\n return \"0 0 0 0.5rem\";\n case \"right\":\n return \"0 1rem 0 0\";\n case \"top\":\n return \"0 0 0.5rem 0\";\n default:\n return \"0.5rem 0 0 0\";\n }\n};\n\nexport const Label = styled.span<{\n $labelPosition?: string;\n $disabled?: boolean;\n}>`\n display: block;\n font-size: 0.875em;\n line-height: 1.125rem;\n margin: ${({ $labelPosition }) =>\n $labelPosition && setMargin($labelPosition)};\n ${({ $labelPosition }) =>\n ($labelPosition === \"left\" || $labelPosition === \"right\") &&\n \"align-self: center\"};\n\n &.visually-hidden {\n position: absolute;\n height: 1px;\n width: 1px;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n }\n\n ${({ $disabled }) => $disabled && \"opacity: 0.5;\"}\n`;\n\nexport const InputFieldIcon = styled.span<{\n $iconPosition?: \"left\" | \"right\";\n $disabled: boolean;\n $showBackground?: boolean;\n}>`\n position: absolute;\n display: flex;\n top: 1px;\n width: 3rem;\n height: 2.875rem;\n justify-content: center;\n align-items: center;\n ${({ $disabled }) => $disabled && \"opacity: 0.2\"};\n ${({ $iconPosition }) => `${$iconPosition}`}: 1px;\n\n &.ds-input-wrapper__icon--clickable {\n cursor: pointer;\n }\n\n ${({ $showBackground, $iconPosition }) =>\n $showBackground &&\n `\n background-color: ${neutral[\"neutral-90\"]};\n ${\n $iconPosition === \"left\"\n ? `border-right: 1px solid ${neutral[\"neutral-60\"]}; border-radius: 3px 0 0 3px;`\n : `border-left: 1px solid ${neutral[\"neutral-60\"]}; border-radius: 0 3px 3px 0;`\n };\n `}\n`;\n\nexport const ValidationIconWrapper = styled(InputFieldIcon)`\n right: 0;\n`;\n","import { forwardRef, useId, useState } from \"react\";\nimport classNames from \"classnames\";\n\n// Icons\nimport { AlertCircle as ValidationIcon, Eye, EyeOff } from \"@/Icons\";\n\n// Hooks\nimport { useInput } from \"@/hooks/useInput.ts/useInput\";\n\n// Types\nimport type { InputFieldProps } from \"./InputField.types\";\n\n// Styles\nimport {\n Input,\n InputWrapper,\n InputFieldIcon,\n Wrapper,\n Label,\n ValidationIconWrapper,\n} from \"./InputField.styles\";\n\n// Theme Provider\nimport { Theme, platformThemes } from \"@/theme\";\n\nexport const InputField = forwardRef<HTMLInputElement, InputFieldProps>(\n (\n {\n className,\n defaultValue,\n disabled = false,\n error = false,\n errorId,\n hideLabel = false,\n icon,\n iconPosition = \"left\",\n id,\n label,\n labelPosition = \"top\",\n maxLength,\n name,\n onBlur,\n onChange,\n onFocus,\n placeholder = \"\",\n platform = \"octopus-online\",\n required = false,\n reset,\n showBackground = false,\n showErrorIcon = false,\n type = \"text\",\n value,\n ...rest\n },\n ref\n ) => {\n const { handleInputChange } = useInput(onChange, reset!, required ?? false);\n const [toggleShowPassword, setToggleShowPassword] = useState(false);\n\n const inputId = useId();\n\n const getType = toggleShowPassword ? \"text\" : \"password\";\n\n const isPasswordField = name?.includes(\"password\".toLowerCase());\n\n const PasswordIcon = toggleShowPassword ? <Eye /> : <EyeOff />;\n\n const inputIcon = isPasswordField ? PasswordIcon : icon ? icon : null;\n\n const iconPropExists = Boolean(inputIcon);\n\n const inputFieldClasses = classNames(\n \"ds-input-field__input\",\n \"ds-input-field\",\n className\n );\n const handleIconClick = () => {\n setToggleShowPassword(!toggleShowPassword);\n const element = document.getElementById(id ?? \"\");\n if (element) {\n element.focus();\n }\n };\n if (hideLabel && !label) {\n throw new Error(\n \"InputField: If hideLabel is true, a label must be provided.\"\n );\n }\n return (\n <Theme>\n <Wrapper\n $labelPosition={labelPosition}\n className=\"ds-input-field__label\"\n data-platform={platform}\n htmlFor={id ?? inputId}\n >\n {label && labelPosition && (\n <Label\n $labelPosition={labelPosition}\n $disabled={disabled}\n className={classNames(\n \"ds-input__label-text\",\n hideLabel && \"visually-hidden\"\n )}\n >\n {label}\n </Label>\n )}\n\n <InputWrapper\n $labelPosition={labelPosition}\n className={\"ds-input-wrapper\"}\n >\n <Input\n $error={error}\n $iconExists={iconPropExists}\n $iconPosition={iconPosition}\n $platform={platform}\n $showBackground={showBackground}\n aria-invalid={error ? \"true\" : \"false\"}\n aria-required={required}\n autoComplete=\"off\"\n {...(error && {\n \"aria-describedby\": errorId,\n \"aria-errormessage\": errorId,\n })}\n {...(hideLabel && { \"aria-label\": label })}\n className={inputFieldClasses}\n defaultValue={defaultValue}\n disabled={disabled}\n id={id ?? inputId}\n maxLength={maxLength}\n name={name}\n onBlur={onBlur}\n onChange={handleInputChange}\n onFocus={onFocus}\n placeholder={placeholder}\n ref={ref}\n required={required}\n type={type === \"password\" ? getType : type}\n value={value}\n {...rest}\n />\n {iconPropExists && (\n <InputFieldIcon\n $disabled={disabled}\n $iconPosition={type === \"password\" ? \"right\" : iconPosition}\n $showBackground={showBackground}\n {...(type !== \"password\" && { \"aria-hidden\": isPasswordField })}\n {...(isPasswordField && {\n tabIndex: 0,\n role: \"button\",\n \"aria-label\": toggleShowPassword\n ? \"Hide password\"\n : \"Show password\",\n })}\n className={classNames(\n \"ds-input-field__icon__wrapper\",\n \"ds-input-wrapper__icon\",\n isPasswordField &&\n !disabled &&\n \"ds-input-wrapper__icon--clickable\"\n )}\n {...(isPasswordField &&\n !disabled && { onClick: handleIconClick })}\n >\n {inputIcon}\n </InputFieldIcon>\n )}\n\n {error && showErrorIcon && (\n <ValidationIconWrapper\n $disabled={disabled}\n aria-hidden=\"true\"\n className={\"ds-input-field__validation-icon-wrapper\"}\n >\n <ValidationIcon\n aria-hidden=\"true\"\n className=\"ds-input-field__validation-icon\"\n color={platformThemes[platform].colors.error}\n />\n </ValidationIconWrapper>\n )}\n </InputWrapper>\n </Wrapper>\n </Theme>\n );\n }\n);\n\nInputField.displayName = \"InputField\";\n","import { ChangeEvent, useEffect, useState } from \"react\";\n\nexport const useInput = (onChange: any, reset: boolean, required: boolean) => {\n const [dirty, setDirty] = useState(false);\n\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n setDirty(true);\n const { value, name } = e.target;\n if (onChange)\n onChange({\n event: e,\n value,\n name,\n dirty,\n required,\n });\n };\n\n useEffect(() => {\n if (reset && dirty) {\n setDirty(false);\n }\n }, [dirty, reset]);\n\n return {\n handleInputChange,\n };\n};\n","import styled, { css } from \"styled-components\";\n\n// Components\nimport { InputField } from \"@/components/Inputs/InputField/InputField\";\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n`;\n\nexport const Label = styled.span<{ $disabled: boolean }>`\n font-size: 0.875em;\n margin-bottom: 0.25rem;\n width: 100%;\n ${({ $disabled }) =>\n $disabled &&\n css`\n opacity: 0.5;\n `}\n`;\n\nexport const TwoDigitInput = styled(InputField)`\n text-align: center;\n ${({ disabled }) =>\n disabled &&\n css`\n cursor: not-allowed;\n opacity: 0.5;\n `}\n margin-right: 1.25rem;\n width: 3.875rem;\n`;\n\nexport const FourDigitInput = styled(InputField)`\n ${({ disabled }) =>\n disabled &&\n css`\n cursor: not-allowed;\n opacity: 0.5;\n `}\n width: 5rem;\n`;\n","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\nvar hookCallback;\n\nfunction hooks() {\n return hookCallback.apply(null, arguments);\n}\n\n// This is done to register the method called with moment()\n// without creating circular dependencies.\nfunction setHookCallback(callback) {\n hookCallback = callback;\n}\n\nfunction isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n}\n\nfunction isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n}\n\nfunction hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nfunction isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n}\n\nfunction isUndefined(input) {\n return input === void 0;\n}\n\nfunction isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n}\n\nfunction isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n}\n\nfunction map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n}\n\nfunction extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n}\n\nfunction createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n}\n\nfunction defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n}\n\nfunction getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n}\n\nvar some;\nif (Array.prototype.some) {\n some = Array.prototype.some;\n} else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n}\n\nfunction isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n}\n\nfunction createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n}\n\n// Plugins that add properties should also add the key here (null value),\n// so we can properly clone ourselves.\nvar momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\nfunction copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n}\n\n// Moment prototype object\nfunction Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n}\n\nfunction isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n}\n\nfunction warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n}\n\nfunction deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n}\n\nvar deprecations = {};\n\nfunction deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n}\n\nhooks.suppressDeprecationWarnings = false;\nhooks.deprecationHandler = null;\n\nfunction isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n}\n\nfunction set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n}\n\nfunction mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n}\n\nfunction Locale(config) {\n if (config != null) {\n this.set(config);\n }\n}\n\nvar keys;\n\nif (Object.keys) {\n keys = Object.keys;\n} else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n}\n\nvar defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n};\n\nfunction calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n}\n\nfunction zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n}\n\nvar formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nfunction addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n}\n\nfunction removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n}\n\nfunction makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n}\n\n// format date using native date object\nfunction formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n}\n\nfunction expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n}\n\nvar defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n};\n\nfunction longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n}\n\nvar defaultInvalidDate = 'Invalid date';\n\nfunction invalidDate() {\n return this._invalidDate;\n}\n\nvar defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\nfunction ordinal(number) {\n return this._ordinal.replace('%d', number);\n}\n\nvar defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n};\n\nfunction relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n}\n\nfunction pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n}\n\nvar aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n};\n\nfunction normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n}\n\nfunction normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n}\n\nvar priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n};\n\nfunction getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n}\n\nvar match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\nregexes = {};\n\nfunction addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n}\n\nfunction getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n}\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n}\n\nfunction regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nfunction absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n}\n\nfunction toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n}\n\nvar tokens = {};\n\nfunction addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n}\n\nfunction addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n}\n\nfunction addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n}\n\nfunction isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n\nvar YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n// FORMATTING\n\naddFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n});\n\naddFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n});\n\naddFormatToken(0, ['YYYY', 4], 0, 'year');\naddFormatToken(0, ['YYYYY', 5], 0, 'year');\naddFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n// PARSING\n\naddRegexToken('Y', matchSigned);\naddRegexToken('YY', match1to2, match2);\naddRegexToken('YYYY', match1to4, match4);\naddRegexToken('YYYYY', match1to6, match6);\naddRegexToken('YYYYYY', match1to6, match6);\n\naddParseToken(['YYYYY', 'YYYYYY'], YEAR);\naddParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n});\naddParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n});\naddParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n});\n\n// HELPERS\n\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\n// HOOKS\n\nhooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n};\n\n// MOMENTS\n\nvar getSetYear = makeGetSet('FullYear', true);\n\nfunction getIsLeapYear() {\n return isLeapYear(this.year());\n}\n\nfunction makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n}\n\nfunction get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n}\n\nfunction set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n}\n\n// MOMENTS\n\nfunction stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n}\n\nfunction stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n}\n\nfunction mod(n, x) {\n return ((n % x) + x) % x;\n}\n\nvar indexOf;\n\nif (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n} else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n}\n\nfunction daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n}\n\n// FORMATTING\n\naddFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n});\n\naddFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n});\n\naddFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n});\n\n// PARSING\n\naddRegexToken('M', match1to2, match1to2NoLeadingZero);\naddRegexToken('MM', match1to2, match2);\naddRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n});\naddRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n});\n\naddParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n});\n\naddParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n});\n\n// LOCALES\n\nvar defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\nfunction localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n}\n\nfunction localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n}\n\nfunction handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n}\n\nfunction getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n}\n\nfunction getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n}\n\nfunction monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n}\n\nfunction monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n}\n\nfunction computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n}\n\nfunction createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n}\n\nfunction createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n}\n\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n}\n\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nfunction dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n}\n\nfunction weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n}\n\nfunction weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n\n// FORMATTING\n\naddFormatToken('w', ['ww', 2], 'wo', 'week');\naddFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n// PARSING\n\naddRegexToken('w', match1to2, match1to2NoLeadingZero);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2, match1to2NoLeadingZero);\naddRegexToken('WW', match1to2, match2);\n\naddWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n);\n\n// HELPERS\n\n// LOCALES\n\nfunction localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n}\n\nvar defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n};\n\nfunction localeFirstDayOfWeek() {\n return this._week.dow;\n}\n\nfunction localeFirstDayOfYear() {\n return this._week.doy;\n}\n\n// MOMENTS\n\nfunction getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\nfunction getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('d', 0, 'do', 'day');\n\naddFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n});\n\naddFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n});\n\naddFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n});\n\naddFormatToken('e', 0, 0, 'weekday');\naddFormatToken('E', 0, 0, 'isoWeekday');\n\n// PARSING\n\naddRegexToken('d', match1to2);\naddRegexToken('e', match1to2);\naddRegexToken('E', match1to2);\naddRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n});\naddRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n});\naddRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n});\n\naddWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n});\n\naddWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n});\n\n// HELPERS\n\nfunction parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n}\n\nfunction parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n}\n\n// LOCALES\nfunction shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n}\n\nvar defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\nfunction localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n}\n\nfunction localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n}\n\nfunction localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n}\n\nfunction handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n}\n\nfunction getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n}\n\nfunction getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n}\n\nfunction weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n}\n\nfunction weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n}\n\nfunction weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n}\n\nfunction computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\nfunction hFormat() {\n return this.hours() % 12 || 12;\n}\n\nfunction kFormat() {\n return this.hours() || 24;\n}\n\naddFormatToken('H', ['HH', 2], 0, 'hour');\naddFormatToken('h', ['hh', 2], 0, hFormat);\naddFormatToken('k', ['kk', 2], 0, kFormat);\n\naddFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\naddFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\nfunction meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n}\n\nmeridiem('a', true);\nmeridiem('A', false);\n\n// PARSING\n\nfunction matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2, match1to2HasZero);\naddRegexToken('h', match1to2, match1to2NoLeadingZero);\naddRegexToken('k', match1to2, match1to2NoLeadingZero);\naddRegexToken('HH', match1to2, match2);\naddRegexToken('hh', match1to2, match2);\naddRegexToken('kk', match1to2, match2);\n\naddRegexToken('hmm', match3to4);\naddRegexToken('hmmss', match5to6);\naddRegexToken('Hmm', match3to4);\naddRegexToken('Hmmss', match5to6);\n\naddParseToken(['H', 'HH'], HOUR);\naddParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n});\naddParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n});\naddParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n});\naddParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n});\n\n// LOCALES\n\nfunction localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n}\n\nvar defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\nfunction localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n}\n\nvar baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n};\n\n// internal storage for locale config files\nvar locales = {},\n localeFamilies = {},\n globalLocale;\n\nfunction commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n}\n\nfunction normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n}\n\nfunction isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n}\n\nfunction loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n}\n\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nfunction getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n}\n\nfunction defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n}\n\nfunction updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n}\n\n// returns locale data\nfunction getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n}\n\nfunction listLocales() {\n return keys(locales);\n}\n\nfunction checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n}\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\nvar extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n// date from iso format\nfunction configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n}\n\nfunction extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n}\n\nfunction untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n}\n\nfunction checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n}\n\nfunction calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n}\n\n// date and time from ref 2822 format\nfunction configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n}\n\n// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\nfunction configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n}\n\nhooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n);\n\n// Pick the first defined of two or three arguments.\nfunction defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n}\n\nfunction currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nfunction configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n}\n\nfunction dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n}\n\n// constant that refers to the ISO standard\nhooks.ISO_8601 = function () {};\n\n// constant that refers to the RFC 2822 form\nhooks.RFC_2822 = function () {};\n\n// date from string and format string\nfunction configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n}\n\nfunction meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n}\n\n// date from string and array of format strings\nfunction configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n}\n\nfunction configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n}\n\nfunction createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n}\n\nfunction prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n}\n\nfunction configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n}\n\nfunction createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n}\n\nfunction createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n}\n\nvar prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n// Pick a moment m from moments so that m[fn](other) is true for all\n// other. This relies on the function fn to be transitive.\n//\n// moments should either be an array of moment objects or an array, whose\n// first element is an array of moment objects.\nfunction pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n}\n\n// TODO: Use [].sort instead?\nfunction min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n}\n\nfunction max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n}\n\nvar now = function () {\n return Date.now ? Date.now() : +new Date();\n};\n\nvar ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n];\n\nfunction isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n}\n\nfunction isValid$1() {\n return this._isValid;\n}\n\nfunction createInvalid$1() {\n return createDuration(NaN);\n}\n\nfunction Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n}\n\nfunction isDuration(obj) {\n return obj instanceof Duration;\n}\n\nfunction absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n}\n\n// compare two arrays, return the number of differences\nfunction compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n}\n\n// FORMATTING\n\nfunction offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n}\n\noffset('Z', ':');\noffset('ZZ', '');\n\n// PARSING\n\naddRegexToken('Z', matchShortOffset);\naddRegexToken('ZZ', matchShortOffset);\naddParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n});\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nvar chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n}\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\nfunction cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n}\n\nfunction getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n}\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\nhooks.updateOffset = function () {};\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n}\n\nfunction getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n\nfunction setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n}\n\nfunction setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}\n\nfunction setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n}\n\nfunction hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n}\n\nfunction isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n}\n\nfunction isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}\n\nfunction isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nfunction isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nfunction isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}\n\n// ASP.NET json date format regex\nvar aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\nfunction createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n}\n\ncreateDuration.fn = Duration.prototype;\ncreateDuration.invalid = createInvalid$1;\n\nfunction parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n}\n\nfunction momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n}\n\n// TODO: remove 'name' arg after deprecation is removed\nfunction createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n}\n\nfunction addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n}\n\nvar add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\nfunction isString(input) {\n return typeof input === 'string' || input instanceof String;\n}\n\n// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\nfunction isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n}\n\nfunction isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n}\n\nfunction isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n}\n\nfunction calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n}\n\nfunction clone() {\n return new Moment(this);\n}\n\nfunction isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n}\n\nfunction isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n}\n\nfunction isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n}\n\nfunction isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n}\n\nfunction isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n}\n\nfunction isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n}\n\nfunction diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n}\n\nfunction monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n}\n\nhooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\nhooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\nfunction toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n}\n\nfunction toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n}\n\n/**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\nfunction inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n}\n\nfunction format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n}\n\nfunction from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n}\n\nfunction to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n}\n\n// If passed a locale key, it will set the locale for this\n// instance. Otherwise, it will return the locale configuration\n// variables for this instance.\nfunction locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n}\n\nvar lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n);\n\nfunction localeData() {\n return this._locale;\n}\n\nvar MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n// actual modulo - handles negative numbers (for dates before 1970):\nfunction mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n}\n\nfunction localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n}\n\nfunction utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n}\n\nfunction startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n}\n\nfunction unix() {\n return Math.floor(this.valueOf() / 1000);\n}\n\nfunction toDate() {\n return new Date(this.valueOf());\n}\n\nfunction toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n}\n\nfunction toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n}\n\nfunction toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n}\n\nfunction isValid$2() {\n return isValid(this);\n}\n\nfunction parsingFlags() {\n return extend({}, getParsingFlags(this));\n}\n\nfunction invalidAt() {\n return getParsingFlags(this).overflow;\n}\n\nfunction creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n}\n\naddFormatToken('N', 0, 0, 'eraAbbr');\naddFormatToken('NN', 0, 0, 'eraAbbr');\naddFormatToken('NNN', 0, 0, 'eraAbbr');\naddFormatToken('NNNN', 0, 0, 'eraName');\naddFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\naddFormatToken('y', ['y', 1], 'yo', 'eraYear');\naddFormatToken('y', ['yy', 2], 0, 'eraYear');\naddFormatToken('y', ['yyy', 3], 0, 'eraYear');\naddFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\naddRegexToken('N', matchEraAbbr);\naddRegexToken('NN', matchEraAbbr);\naddRegexToken('NNN', matchEraAbbr);\naddRegexToken('NNNN', matchEraName);\naddRegexToken('NNNNN', matchEraNarrow);\n\naddParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n);\n\naddRegexToken('y', matchUnsigned);\naddRegexToken('yy', matchUnsigned);\naddRegexToken('yyy', matchUnsigned);\naddRegexToken('yyyy', matchUnsigned);\naddRegexToken('yo', matchEraYearOrdinal);\n\naddParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\naddParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n});\n\nfunction localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n}\n\nfunction localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n}\n\nfunction localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n}\n\nfunction getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n}\n\nfunction getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n}\n\nfunction getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n}\n\nfunction getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n}\n\nfunction erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n}\n\nfunction erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n}\n\nfunction erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n}\n\nfunction matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n}\n\nfunction matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n}\n\nfunction matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n}\n\nfunction matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n}\n\nfunction computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\naddFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n});\n\naddFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n});\n\nfunction addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n}\n\naddWeekYearFormatToken('gggg', 'weekYear');\naddWeekYearFormatToken('ggggg', 'weekYear');\naddWeekYearFormatToken('GGGG', 'isoWeekYear');\naddWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n// ALIASES\n\n// PARSING\n\naddRegexToken('G', matchSigned);\naddRegexToken('g', matchSigned);\naddRegexToken('GG', match1to2, match2);\naddRegexToken('gg', match1to2, match2);\naddRegexToken('GGGG', match1to4, match4);\naddRegexToken('gggg', match1to4, match4);\naddRegexToken('GGGGG', match1to6, match6);\naddRegexToken('ggggg', match1to6, match6);\n\naddWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n);\n\naddWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n});\n\n// MOMENTS\n\nfunction getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n}\n\nfunction getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n}\n\nfunction getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n}\n\nfunction getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n}\n\nfunction getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n}\n\nfunction setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n}\n\n// FORMATTING\n\naddFormatToken('Q', 0, 'Qo', 'quarter');\n\n// PARSING\n\naddRegexToken('Q', match1);\naddParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n});\n\n// MOMENTS\n\nfunction getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n}\n\n// FORMATTING\n\naddFormatToken('D', ['DD', 2], 'Do', 'date');\n\n// PARSING\n\naddRegexToken('D', match1to2, match1to2NoLeadingZero);\naddRegexToken('DD', match1to2, match2);\naddRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n});\n\naddParseToken(['D', 'DD'], DATE);\naddParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n});\n\n// MOMENTS\n\nvar getSetDayOfMonth = makeGetSet('Date', true);\n\n// FORMATTING\n\naddFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n// PARSING\n\naddRegexToken('DDD', match1to3);\naddRegexToken('DDDD', match3);\naddParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n});\n\n// HELPERS\n\n// MOMENTS\n\nfunction getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('m', ['mm', 2], 0, 'minute');\n\n// PARSING\n\naddRegexToken('m', match1to2, match1to2HasZero);\naddRegexToken('mm', match1to2, match2);\naddParseToken(['m', 'mm'], MINUTE);\n\n// MOMENTS\n\nvar getSetMinute = makeGetSet('Minutes', false);\n\n// FORMATTING\n\naddFormatToken('s', ['ss', 2], 0, 'second');\n\n// PARSING\n\naddRegexToken('s', match1to2, match1to2HasZero);\naddRegexToken('ss', match1to2, match2);\naddParseToken(['s', 'ss'], SECOND);\n\n// MOMENTS\n\nvar getSetSecond = makeGetSet('Seconds', false);\n\n// FORMATTING\n\naddFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n});\n\naddFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n});\n\naddFormatToken(0, ['SSS', 3], 0, 'millisecond');\naddFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n});\naddFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n});\naddFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n});\naddFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n});\naddFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n});\naddFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n});\n\n// PARSING\n\naddRegexToken('S', match1to3, match1);\naddRegexToken('SS', match1to3, match2);\naddRegexToken('SSS', match1to3, match3);\n\nvar token, getSetMillisecond;\nfor (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n}\n\nfunction parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n}\n\nfor (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n}\n\ngetSetMillisecond = makeGetSet('Milliseconds', false);\n\n// FORMATTING\n\naddFormatToken('z', 0, 0, 'zoneAbbr');\naddFormatToken('zz', 0, 0, 'zoneName');\n\n// MOMENTS\n\nfunction getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n}\n\nfunction getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n}\n\nvar proto = Moment.prototype;\n\nproto.add = add;\nproto.calendar = calendar$1;\nproto.clone = clone;\nproto.diff = diff;\nproto.endOf = endOf;\nproto.format = format;\nproto.from = from;\nproto.fromNow = fromNow;\nproto.to = to;\nproto.toNow = toNow;\nproto.get = stringGet;\nproto.invalidAt = invalidAt;\nproto.isAfter = isAfter;\nproto.isBefore = isBefore;\nproto.isBetween = isBetween;\nproto.isSame = isSame;\nproto.isSameOrAfter = isSameOrAfter;\nproto.isSameOrBefore = isSameOrBefore;\nproto.isValid = isValid$2;\nproto.lang = lang;\nproto.locale = locale;\nproto.localeData = localeData;\nproto.max = prototypeMax;\nproto.min = prototypeMin;\nproto.parsingFlags = parsingFlags;\nproto.set = stringSet;\nproto.startOf = startOf;\nproto.subtract = subtract;\nproto.toArray = toArray;\nproto.toObject = toObject;\nproto.toDate = toDate;\nproto.toISOString = toISOString;\nproto.inspect = inspect;\nif (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n}\nproto.toJSON = toJSON;\nproto.toString = toString;\nproto.unix = unix;\nproto.valueOf = valueOf;\nproto.creationData = creationData;\nproto.eraName = getEraName;\nproto.eraNarrow = getEraNarrow;\nproto.eraAbbr = getEraAbbr;\nproto.eraYear = getEraYear;\nproto.year = getSetYear;\nproto.isLeapYear = getIsLeapYear;\nproto.weekYear = getSetWeekYear;\nproto.isoWeekYear = getSetISOWeekYear;\nproto.quarter = proto.quarters = getSetQuarter;\nproto.month = getSetMonth;\nproto.daysInMonth = getDaysInMonth;\nproto.week = proto.weeks = getSetWeek;\nproto.isoWeek = proto.isoWeeks = getSetISOWeek;\nproto.weeksInYear = getWeeksInYear;\nproto.weeksInWeekYear = getWeeksInWeekYear;\nproto.isoWeeksInYear = getISOWeeksInYear;\nproto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\nproto.date = getSetDayOfMonth;\nproto.day = proto.days = getSetDayOfWeek;\nproto.weekday = getSetLocaleDayOfWeek;\nproto.isoWeekday = getSetISODayOfWeek;\nproto.dayOfYear = getSetDayOfYear;\nproto.hour = proto.hours = getSetHour;\nproto.minute = proto.minutes = getSetMinute;\nproto.second = proto.seconds = getSetSecond;\nproto.millisecond = proto.milliseconds = getSetMillisecond;\nproto.utcOffset = getSetOffset;\nproto.utc = setOffsetToUTC;\nproto.local = setOffsetToLocal;\nproto.parseZone = setOffsetToParsedOffset;\nproto.hasAlignedHourOffset = hasAlignedHourOffset;\nproto.isDST = isDaylightSavingTime;\nproto.isLocal = isLocal;\nproto.isUtcOffset = isUtcOffset;\nproto.isUtc = isUtc;\nproto.isUTC = isUtc;\nproto.zoneAbbr = getZoneAbbr;\nproto.zoneName = getZoneName;\nproto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n);\nproto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n);\nproto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n);\nproto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n);\nproto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n);\n\nfunction createUnix(input) {\n return createLocal(input * 1000);\n}\n\nfunction createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n}\n\nfunction preParsePostFormat(string) {\n return string;\n}\n\nvar proto$1 = Locale.prototype;\n\nproto$1.calendar = calendar;\nproto$1.longDateFormat = longDateFormat;\nproto$1.invalidDate = invalidDate;\nproto$1.ordinal = ordinal;\nproto$1.preparse = preParsePostFormat;\nproto$1.postformat = preParsePostFormat;\nproto$1.relativeTime = relativeTime;\nproto$1.pastFuture = pastFuture;\nproto$1.set = set;\nproto$1.eras = localeEras;\nproto$1.erasParse = localeErasParse;\nproto$1.erasConvertYear = localeErasConvertYear;\nproto$1.erasAbbrRegex = erasAbbrRegex;\nproto$1.erasNameRegex = erasNameRegex;\nproto$1.erasNarrowRegex = erasNarrowRegex;\n\nproto$1.months = localeMonths;\nproto$1.monthsShort = localeMonthsShort;\nproto$1.monthsParse = localeMonthsParse;\nproto$1.monthsRegex = monthsRegex;\nproto$1.monthsShortRegex = monthsShortRegex;\nproto$1.week = localeWeek;\nproto$1.firstDayOfYear = localeFirstDayOfYear;\nproto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\nproto$1.weekdays = localeWeekdays;\nproto$1.weekdaysMin = localeWeekdaysMin;\nproto$1.weekdaysShort = localeWeekdaysShort;\nproto$1.weekdaysParse = localeWeekdaysParse;\n\nproto$1.weekdaysRegex = weekdaysRegex;\nproto$1.weekdaysShortRegex = weekdaysShortRegex;\nproto$1.weekdaysMinRegex = weekdaysMinRegex;\n\nproto$1.isPM = localeIsPM;\nproto$1.meridiem = localeMeridiem;\n\nfunction get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n}\n\nfunction listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n}\n\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\nfunction listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n}\n\nfunction listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n}\n\nfunction listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n}\n\nfunction listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n}\n\nfunction listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n}\n\nfunction listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n}\n\ngetSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n});\n\n// Side effect imports\n\nhooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n);\nhooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n);\n\nvar mathAbs = Math.abs;\n\nfunction abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n}\n\nfunction addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n}\n\n// supports only 2.0-style add(1, 's') or add(duration)\nfunction add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n}\n\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\nfunction subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n}\n\nfunction absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n}\n\nfunction bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n}\n\nfunction daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n}\n\nfunction monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n}\n\nfunction as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n}\n\nfunction makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n}\n\nvar asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\nfunction clone$1() {\n return createDuration(this);\n}\n\nfunction get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n}\n\nfunction makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n}\n\nvar milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\nfunction weeks() {\n return absFloor(this.days() / 7);\n}\n\nvar round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n}\n\nfunction relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n}\n\n// This function allows you to set the rounding function for relative time strings\nfunction getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nfunction getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n}\n\nfunction humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n}\n\nvar abs$1 = Math.abs;\n\nfunction sign(x) {\n return (x > 0) - (x < 0) || +x;\n}\n\nfunction toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n}\n\nvar proto$2 = Duration.prototype;\n\nproto$2.isValid = isValid$1;\nproto$2.abs = abs;\nproto$2.add = add$1;\nproto$2.subtract = subtract$1;\nproto$2.as = as;\nproto$2.asMilliseconds = asMilliseconds;\nproto$2.asSeconds = asSeconds;\nproto$2.asMinutes = asMinutes;\nproto$2.asHours = asHours;\nproto$2.asDays = asDays;\nproto$2.asWeeks = asWeeks;\nproto$2.asMonths = asMonths;\nproto$2.asQuarters = asQuarters;\nproto$2.asYears = asYears;\nproto$2.valueOf = valueOf$1;\nproto$2._bubble = bubble;\nproto$2.clone = clone$1;\nproto$2.get = get$2;\nproto$2.milliseconds = milliseconds;\nproto$2.seconds = seconds;\nproto$2.minutes = minutes;\nproto$2.hours = hours;\nproto$2.days = days;\nproto$2.weeks = weeks;\nproto$2.months = months;\nproto$2.years = years;\nproto$2.humanize = humanize;\nproto$2.toISOString = toISOString$1;\nproto$2.toString = toISOString$1;\nproto$2.toJSON = toISOString$1;\nproto$2.locale = locale;\nproto$2.localeData = localeData;\n\nproto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n);\nproto$2.lang = lang;\n\n// FORMATTING\n\naddFormatToken('X', 0, 0, 'unix');\naddFormatToken('x', 0, 0, 'valueOf');\n\n// PARSING\n\naddRegexToken('x', matchSigned);\naddRegexToken('X', matchTimestamp);\naddParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n});\naddParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n});\n\n//! moment.js\n\nhooks.version = '2.30.1';\n\nsetHookCallback(createLocal);\n\nhooks.fn = proto;\nhooks.min = min;\nhooks.max = max;\nhooks.now = now;\nhooks.utc = createUTC;\nhooks.unix = createUnix;\nhooks.months = listMonths;\nhooks.isDate = isDate;\nhooks.locale = getSetGlobalLocale;\nhooks.invalid = createInvalid;\nhooks.duration = createDuration;\nhooks.isMoment = isMoment;\nhooks.weekdays = listWeekdays;\nhooks.parseZone = createInZone;\nhooks.localeData = getLocale;\nhooks.isDuration = isDuration;\nhooks.monthsShort = listMonthsShort;\nhooks.weekdaysMin = listWeekdaysMin;\nhooks.defineLocale = defineLocale;\nhooks.updateLocale = updateLocale;\nhooks.locales = listLocales;\nhooks.weekdaysShort = listWeekdaysShort;\nhooks.normalizeUnits = normalizeUnits;\nhooks.relativeTimeRounding = getSetRelativeTimeRounding;\nhooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\nhooks.calendarFormat = getCalendarFormat;\nhooks.prototype = proto;\n\n// currently HTML5 input type only supports 24-hour formats\nhooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n};\n\nexport default hooks;\n","import styled from \"styled-components\";\n\nexport const Wrapper = styled.div<{\n $platform: string;\n $validationError?: boolean;\n}>`\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n\n .ds-date-input__input-field {\n ${({ $validationError, $platform, theme }) =>\n $validationError && `border: 1px solid ${theme[$platform].colors.error};`}\n }\n`;\n","/*!\n * Number-To-Words util\n * @version v1.2.4\n * @link https://github.com/marlun78/number-to-words\n * @author Martin Eneqvist (https://github.com/marlun78)\n * @contributors Aleksey Pilyugin (https://github.com/pilyugin),Jeremiah Hall (https://github.com/jeremiahrhall),Adriano Melo (https://github.com/adrianomelo),dmrzn (https://github.com/dmrzn)\n * @license MIT\n */\n!function(){\"use strict\";var e=\"object\"==typeof self&&self.self===self&&self||\"object\"==typeof global&&global.global===global&&global||this,t=9007199254740991;function f(e){return!(\"number\"!=typeof e||e!=e||e===1/0||e===-1/0)}function l(e){return\"number\"==typeof e&&Math.abs(e)<=t}var n=/(hundred|thousand|(m|b|tr|quadr)illion)$/,r=/teen$/,o=/y$/,i=/(zero|one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve)$/,s={zero:\"zeroth\",one:\"first\",two:\"second\",three:\"third\",four:\"fourth\",five:\"fifth\",six:\"sixth\",seven:\"seventh\",eight:\"eighth\",nine:\"ninth\",ten:\"tenth\",eleven:\"eleventh\",twelve:\"twelfth\"};function h(e){return n.test(e)||r.test(e)?e+\"th\":o.test(e)?e.replace(o,\"ieth\"):i.test(e)?e.replace(i,a):e}function a(e,t){return s[t]}var u=10,d=100,p=1e3,v=1e6,b=1e9,y=1e12,c=1e15,g=9007199254740992,m=[\"zero\",\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"ten\",\"eleven\",\"twelve\",\"thirteen\",\"fourteen\",\"fifteen\",\"sixteen\",\"seventeen\",\"eighteen\",\"nineteen\"],w=[\"zero\",\"ten\",\"twenty\",\"thirty\",\"forty\",\"fifty\",\"sixty\",\"seventy\",\"eighty\",\"ninety\"];function x(e,t){var n,r=parseInt(e,10);if(!f(r))throw new TypeError(\"Not a finite number: \"+e+\" (\"+typeof e+\")\");if(!l(r))throw new RangeError(\"Input is not a safe number, it’s either too large or too small.\");return n=function e(t){var n,r,o=arguments[1];if(0===t)return o?o.join(\" \").replace(/,$/,\"\"):\"zero\";o||(o=[]);t<0&&(o.push(\"minus\"),t=Math.abs(t));t<20?(n=0,r=m[t]):t<d?(n=t%u,r=w[Math.floor(t/u)],n&&(r+=\"-\"+m[n],n=0)):t<p?(n=t%d,r=e(Math.floor(t/d))+\" hundred\"):t<v?(n=t%p,r=e(Math.floor(t/p))+\" thousand,\"):t<b?(n=t%v,r=e(Math.floor(t/v))+\" million,\"):t<y?(n=t%b,r=e(Math.floor(t/b))+\" billion,\"):t<c?(n=t%y,r=e(Math.floor(t/y))+\" trillion,\"):t<=g&&(n=t%c,r=e(Math.floor(t/c))+\" quadrillion,\");o.push(r);return e(n,o)}(r),t?h(n):n}var M={toOrdinal:function(e){var t=parseInt(e,10);if(!f(t))throw new TypeError(\"Not a finite number: \"+e+\" (\"+typeof e+\")\");if(!l(t))throw new RangeError(\"Input is not a safe number, it’s either too large or too small.\");var n=String(t),r=Math.abs(t%100),o=11<=r&&r<=13,i=n.charAt(n.length-1);return n+(o?\"th\":\"1\"===i?\"st\":\"2\"===i?\"nd\":\"3\"===i?\"rd\":\"th\")},toWords:x,toWordsOrdinal:function(e){return h(x(e))}};\"undefined\"!=typeof exports?(\"undefined\"!=typeof module&&module.exports&&(exports=module.exports=M),exports.numberToWords=M):e.numberToWords=M}();","import styled, { css } from \"styled-components\";\n\nexport const Wrapper = styled.div<{ $labelPosition: \"top\" | \"left\" }>`\n ${({ $labelPosition }) =>\n $labelPosition === \"left\"\n ? css`\n display: flex;\n gap: 1rem;\n `\n : css`\n display: block;\n `}\n\n .ds-date-range__input {\n display: flex;\n }\n\n .ds-date-range-date-picker-from {\n margin-right: 0.5rem;\n }\n`;\n\nexport const FieldLabel = styled.span<{ $labelPosition: \"top\" | \"left\" }>`\n display: block;\n font-size: 0.875em;\n line-height: 1.125rem;\n margin-bottom: 0.5rem;\n ${({ $labelPosition }) =>\n $labelPosition === \"left\"\n ? css`\n margin-top: 0.8rem;\n `\n : css`\n line-height: 1.125rem;\n margin-bottom: 0.5rem;\n `}\n`;\n","import styled from \"styled-components\";\n\nexport const SelectWrapper = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nexport const OptionListStyles = styled.div`\n position: absolute;\n top: calc(100% + 5px);\n left: 0;\n width: 7rem;\n padding: 0.5rem;\n margin: 0;\n border: 1px solid #ccc;\n border-radius: 5px;\n background-color: #fff;\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.1);\n z-index: 10;\n max-height: 21rem;\n overflow-y: scroll;\n`;\n\nexport const Options = styled.div<{ $platform: string }>`\n border-color: transparent;\n border-radius: 0.25rem;\n border-style: solid;\n border-width: 1px;\n cursor: pointer;\n outline: none;\n padding: 0.5rem 0.25rem;\n\n &.selected {\n background-color: #f0f0f0;\n }\n\n &:hover {\n border-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.focus.outline};\n transition: border-color 0.35s ease-in;\n }\n\n &:focus-within {\n border-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.focus.outline};\n }\n`;\n\nexport const SelectTrigger = styled.div<{ $platform: string }>`\n border-color: ${({ theme, $platform }) => theme[$platform].input.border};\n border-radius: 0.25rem;\n border-style: solid;\n border-width: 1px;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n outline: none;\n padding: 0.5rem;\n width: 7rem;\n\n &:focus {\n border-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.focus.outline};\n box-shadow: 0 0 0 0.2rem\n ${({ theme, $platform }) => theme[$platform].calendar.focus[\"box-shadow\"]};\n outline-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.focus.outline};\n }\n\n .label {\n color: ${({ theme, $platform }) => theme[$platform].colors[\"neutral-30\"]};\n font-size: 0.75rem;\n }\n\n .trigger-content {\n display: flex;\n justify-content: space-between;\n\n .chevron {\n display: flex;\n\n &:focus-visible {\n outline-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.focus.outline};\n box-shadow: 0 0 0 0.2rem\n ${({ theme, $platform }) =>\n theme[$platform].calendar.focus[\"box-shadow\"]};\n }\n }\n }\n`;\n","import styled from \"styled-components\";\n\n// Helpers\nimport { hexToRGBA } from \"@/utils\";\n\nexport const CalendarWrapper = styled.div<{ $platform: string }>`\n position: absolute;\n top: 4.375rem;\n width: 23rem;\n\n .date-cell {\n background-color: transparent;\n border-color: transparent;\n border-radius: 0.25rem;\n border-style: solid;\n border-width: 0.5px;\n cursor: pointer;\n flex: 1;\n font-size: 0.875rem;\n height: 2.375rem;\n text-align: center;\n width: 2.375rem;\n\n &:hover {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.hover};\n border-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.secondary};\n }\n\n &:focus-visible {\n outline-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.focus.outline};\n box-shadow: 0 0 0 0.2rem\n ${({ theme, $platform }) =>\n theme[$platform].calendar.focus[\"box-shadow\"]};\n }\n\n &.selected {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.primary};\n color: ${({ theme, $platform }) => theme[$platform].colors.white};\n\n &:hover {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].calendar[\"primary-hover\"]};\n }\n\n &:focus-visible {\n outline-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.focus.outline};\n box-shadow: 0 0 0 0.2rem\n ${({ theme, $platform }) =>\n theme[$platform].calendar.focus[\"box-shadow\"]};\n }\n }\n\n &.previous-month,\n &.next-month {\n color: ${({ theme, $platform }) =>\n theme[$platform].calendar[\"day-disabled\"]};\n cursor: initial;\n pointer-events: none;\n }\n\n &.empty-cell {\n flex: 1;\n cursor: initial;\n pointer-events: none;\n }\n }\n`;\n\nexport const CalendarContainer = styled.div<{ $platform: string }>`\n background-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.background};\n border-radius: 0.25rem;\n ${({ theme, $platform }) =>\n `box-shadow: 0 0.125rem 0.5rem ${hexToRGBA(\n theme[$platform].colors.black,\n 0.1\n )};`}\n display: flex;\n flex-direction: column;\n inset: 0;\n min-height: 27rem;\n position: absolute;\n padding: 0.5rem;\n ${({ theme, $platform }) =>\n ` border: 1px solid ${theme[$platform].calendar.primary}`};\n text-align: initial;\n top: 3.75rem;\n`;\n\nexport const DatesWrapper = styled.div<{ $platform: string }>`\n background-color: ${({ theme, $platform }) => theme[$platform].colors.white};\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n margin-top: 1rem;\n place-items: center;\n`;\n\nexport const CalendarHeader = styled.div`\n position: relative;\n\n .datepicker__header__week-days__list {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n place-items: center;\n flex: 1;\n }\n\n .datepicker__header__week-days__list__day {\n display: inline-block;\n font-size: 0.8rem;\n font-weight: 400;\n text-align: center;\n }\n`;\n\nexport const CalendarHeaderControls = styled.div<{ $platform: string }>`\n align-items: center;\n display: flex;\n justify-content: center;\n margin-bottom: 1rem;\n position: relative;\n\n &::after {\n background: ${({ theme, $platform }) =>\n theme[$platform].calendar.secondary ?? \"\"};\n bottom: 0;\n content: \"\";\n height: 1px;\n position: absolute;\n width: 100%;\n }\n\n button {\n background-color: transparent;\n border: none;\n outline-color: transparent;\n }\n\n .display {\n padding: 1rem 0;\n\n &.calendar-month {\n font-weight: 700;\n }\n\n &.calendar-month-year {\n display: flex;\n gap: 0.5rem;\n }\n }\n\n .ds-calendar__header__week-days {\n position: relative;\n }\n\n .ds-calendar__header__controls__prev,\n .ds-calendar__header__controls__next {\n color: ${({ theme, $platform }) => theme[$platform].colors.black};\n cursor: pointer;\n height: 2rem;\n position: absolute;\n width: 2rem;\n\n svg {\n height: 1.5rem;\n width: 1.5rem;\n }\n }\n\n .ds-calendar__header__controls__prev {\n left: 0;\n }\n\n .ds-calendar__header__controls__next {\n right: 0;\n }\n`;\n\nexport const CalendarFooter = styled.div`\n display: flex;\n justify-content: space-between;\n margin-top: auto;\n padding: 1rem 0.5rem;\n position: absolute;\n bottom: 0;\n`;\n","import { useState, useEffect } from \"react\";\nimport {\n cleanValue,\n fixedDecimalValue,\n formatValue,\n getSuffix,\n padTrimValue,\n repositionCursor,\n} from \"@/utils\";\n\nexport const useFormattedInputHandlers = ({\n allowDecimals,\n allowNegativeValue,\n decimalScale,\n decimalSeparator,\n decimalsLimit,\n defaultValue,\n disableAbbreviations,\n disableGroupSeparators,\n fixedDecimalLength,\n groupSeparator,\n inputRef,\n intlConfig,\n localeConfig,\n maskValue,\n max,\n min,\n name,\n onBlur,\n onChange,\n onFocus,\n onKeyDown,\n onKeyUp,\n onValueChange,\n prefix,\n step,\n suffix,\n transformRawValue,\n userMaxLength,\n userValue,\n}) => {\n const formatValueOptions = {\n decimalSeparator,\n disableGroupSeparators,\n groupSeparator,\n intlConfig,\n prefix: prefix || localeConfig.prefix,\n suffix: suffix,\n };\n\n const cleanValueOptions = {\n allowDecimals,\n allowNegativeValue,\n decimalSeparator,\n decimalsLimit: decimalsLimit || fixedDecimalLength || 2,\n disableAbbreviations,\n groupSeparator,\n prefix: prefix || localeConfig.prefix,\n transformRawValue,\n };\n\n let formattedStateValue = \"\";\n\n if (defaultValue !== undefined && defaultValue !== null) {\n formattedStateValue = formatValue({\n ...formatValueOptions,\n decimalScale,\n value: String(defaultValue),\n });\n } else if (userValue !== undefined && userValue !== null) {\n formattedStateValue = formatValue({\n ...formatValueOptions,\n decimalScale,\n value: String(userValue),\n });\n }\n const [stateValue, setStateValue] = useState(formattedStateValue);\n const [showMask, setShowMask] = useState(false);\n const [dirty, setDirty] = useState(false);\n const [changeCount, setChangeCount] = useState(0);\n const [lastKeyStroke, setLastKeyStroke] = useState();\n const [cursor, setCursor] = useState(0);\n\n const processChange = (value, selectionStart?: any) => {\n setDirty(true);\n\n const { cursorPosition } = repositionCursor({\n groupSeparator,\n lastKeyStroke,\n selectionStart,\n stateValue,\n value,\n });\n\n const stringValue = cleanValue({ value, ...cleanValueOptions });\n\n if (userMaxLength && stringValue.replace(/-/g, \"\").length > userMaxLength) {\n return;\n }\n\n if (\n stringValue === \"\" ||\n stringValue === \"-\" ||\n stringValue === decimalSeparator\n ) {\n if (onValueChange) {\n onValueChange({\n stringValue: \"\",\n name,\n values: { numberValue: null, formatted: \"\", stringValue: \"\" },\n dirty,\n });\n }\n\n setStateValue(stringValue);\n return;\n }\n\n const numberValue = parseFloat(stringValue.replace(decimalSeparator, \".\"));\n\n const formattedValue = formatValue({\n value: stringValue,\n ...formatValueOptions,\n });\n\n if (cursorPosition !== undefined && cursorPosition !== null) {\n // Prevent cursor jumping\n const getPrefix = prefix ? prefix.length : 0;\n let newCursor = cursorPosition + (formattedValue.length - value.length);\n newCursor = newCursor <= 0 ? getPrefix : newCursor;\n\n setCursor(newCursor);\n setChangeCount(changeCount + 1);\n }\n\n setStateValue(formattedValue);\n\n if (onValueChange) {\n const values = {\n formatted: formattedValue,\n numberValue,\n stringValue,\n };\n onValueChange({ stringValue, name, values, dirty });\n }\n };\n\n const handleOnChange = (event) => {\n event.preventDefault();\n const {\n target: { selectionStart, value },\n } = event;\n\n if (value === \"-\" && !allowNegativeValue) return;\n\n processChange(value, selectionStart);\n\n if (onChange) onChange(event);\n };\n\n const handleOnFocus = (event) => {\n if (onFocus) onFocus(event);\n setShowMask(false);\n return stateValue ? stateValue.length : 0;\n };\n\n const handleOnBlur = (event) => {\n const {\n target: { name, value },\n } = event;\n\n if (isNaN(value) && value !== \"\") return;\n if (value === \"-\" && !allowNegativeValue) return;\n\n const valueOnly = cleanValue({ value, ...cleanValueOptions });\n\n if (valueOnly === \"-\" || !valueOnly) {\n setStateValue(\"\");\n if (onBlur) onBlur(event);\n return;\n }\n\n const fixedDecimals = fixedDecimalValue(\n valueOnly,\n decimalSeparator,\n fixedDecimalLength\n );\n\n const newValue = padTrimValue(\n fixedDecimals,\n decimalSeparator,\n decimalScale !== undefined ? decimalScale : fixedDecimalLength\n );\n\n const numberValue = parseFloat(newValue.replace(decimalSeparator, \".\"));\n\n const formattedValue = formatValue({\n ...formatValueOptions,\n value: newValue,\n });\n\n if (onValueChange) {\n const values = {\n formatted: formattedValue,\n numberValue,\n stringValue: newValue,\n };\n onValueChange(newValue, name, values, dirty);\n }\n\n setStateValue(formattedValue);\n\n if (onBlur) onBlur(numberValue);\n };\n\n const handleOnKeyDown = (event) => {\n const { key } = event;\n\n setLastKeyStroke(key);\n\n if (step && (key === \"ArrowUp\" || key === \"ArrowDown\")) {\n event.preventDefault();\n setCursor(stateValue.length);\n\n const currentValue =\n parseFloat(\n userValue !== undefined && userValue !== null\n ? String(userValue).replace(decimalSeparator, \".\")\n : cleanValue({ value: stateValue, ...cleanValueOptions })\n ) || 0;\n const newValue =\n key === \"ArrowUp\" ? currentValue + step : currentValue - step;\n\n if (min !== undefined && newValue < min) {\n return;\n }\n\n if (max !== undefined && newValue > max) {\n return;\n }\n\n const fixedLength = String(step).includes(\".\")\n ? Number(String(step).split(\".\")[1].length)\n : undefined;\n\n processChange(\n String(fixedLength ? newValue.toFixed(fixedLength) : newValue).replace(\n \".\",\n decimalSeparator\n )\n );\n }\n\n if (onKeyDown) onKeyDown(event);\n };\n\n const handleOnKeyUp = (event) => {\n const {\n currentTarget: { selectionStart },\n key,\n } = event;\n if (key !== \"ArrowUp\" && key !== \"ArrowDown\" && stateValue !== \"-\") {\n const suffix = getSuffix(stateValue, {\n decimalSeparator,\n groupSeparator,\n });\n\n if (\n suffix &&\n selectionStart &&\n selectionStart > stateValue.length - suffix.length\n ) {\n if (inputRef && typeof inputRef === \"object\" && inputRef.current) {\n const newCursor = stateValue.length - suffix.length;\n (inputRef.current as HTMLInputElement).setSelectionRange(\n newCursor,\n newCursor\n );\n }\n }\n }\n if (onKeyUp) onKeyUp(event);\n };\n\n const getRenderValue = () => {\n if (\n userValue !== undefined &&\n userValue !== null &&\n stateValue !== \"-\" &&\n (!decimalSeparator || stateValue !== decimalSeparator)\n ) {\n return formatValue({\n ...formatValueOptions,\n decimalScale: dirty ? undefined : decimalScale,\n value: String(userValue),\n });\n }\n\n return stateValue;\n };\n\n useEffect(() => {\n if (\n dirty &&\n stateValue !== \"-\" &&\n inputRef &&\n typeof inputRef === \"object\" &&\n inputRef.current\n ) {\n (inputRef.current as HTMLInputElement).setSelectionRange(cursor, cursor);\n }\n }, [stateValue, cursor, inputRef, dirty, changeCount]);\n\n useEffect(() => {\n if (maskValue) {\n setShowMask(true);\n }\n }, [maskValue, setShowMask, showMask]);\n\n return {\n handleOnKeyUp,\n handleOnKeyDown,\n handleOnBlur,\n handleOnFocus,\n handleOnChange,\n stateValue,\n setStateValue,\n showMask,\n setShowMask,\n dirty,\n setDirty,\n setChangeCount,\n changeCount,\n cursor,\n getRenderValue,\n };\n};\n","export const repositionCursor = ({\n groupSeparator,\n lastKeyStroke,\n selectionStart,\n stateValue,\n value,\n}) => {\n let cursorPosition = selectionStart;\n let modifiedValue = value;\n if (stateValue && cursorPosition) {\n const splitValue = value.split(\"\");\n // if cursor is to right of groupSeparator and backspace pressed, delete the character to the left of the separator and reposition the cursor\n if (\n lastKeyStroke === \"Backspace\" &&\n stateValue[cursorPosition] === groupSeparator\n ) {\n splitValue.splice(cursorPosition - 1, 1);\n cursorPosition -= 1;\n }\n // if cursor is to left of groupSeparator and delete pressed, delete the character to the right of the separator and reposition the cursor\n if (\n lastKeyStroke === \"Delete\" &&\n stateValue[cursorPosition] === groupSeparator\n ) {\n splitValue.splice(cursorPosition, 1);\n cursorPosition += 1;\n }\n modifiedValue = splitValue.join(\"\");\n return { cursorPosition, modifiedValue };\n }\n\n return { cursorPosition: selectionStart, modifiedValue };\n};\n","export const fixedDecimalValue = (\n value,\n decimalSeparator,\n fixedDecimalLength\n) => {\n if (fixedDecimalLength && value.length > 1) {\n if (value.includes(decimalSeparator)) {\n const [int, decimals] = value.split(decimalSeparator);\n if (decimals.length > fixedDecimalLength) {\n return `${int}${decimalSeparator}${decimals.slice(0, fixedDecimalLength)}`;\n }\n }\n\n const reg =\n value.length > fixedDecimalLength\n ? new RegExp(`(\\\\d+)(\\\\d{${fixedDecimalLength}})`)\n : new RegExp(`(\\\\d)(\\\\d+)`);\n\n const match = value.match(reg);\n if (match) {\n const [, int, decimals] = match;\n return `${int}${decimalSeparator}${decimals}`;\n }\n }\n\n return value;\n};\n","export const padTrimValue = (value, decimalSeparator = \".\", decimalScale) => {\n if (decimalScale === undefined || value === \"\" || value === undefined) {\n return value;\n }\n\n if (!value.match(/\\d/g)) {\n return \"\";\n }\n\n const [int, decimals] = value.split(decimalSeparator);\n\n if (decimalScale === 0) {\n return int;\n }\n\n let newValue = decimals || \"\";\n\n if (newValue.length < decimalScale) {\n while (newValue.length < decimalScale) {\n newValue += \"0\";\n }\n } else {\n newValue = newValue.slice(0, decimalScale);\n }\n\n return `${int}${decimalSeparator}${newValue}`;\n};\n","import styled from \"styled-components\";\n\nimport { Input } from \"../InputField/InputField.styles\";\nimport { neutral } from \"@/utils/styles/colors\";\n\nexport const FormattedWrapper = styled.div`\n position: relative;\n\n label {\n display: block;\n font-size: 0.875rem;\n line-height: 1.125rem;\n margin-bottom: 0.5rem;\n }\n\n .icon-container {\n position: absolute;\n top: 2.5rem;\n\n &.input-icon {\n left: 0.75rem;\n }\n }\n`;\n\nexport const IconWrapper = styled.div<{ $iconType: string }>`\n position: absolute;\n top: ${({ $iconType }) => ($iconType === \"percentage\" ? \"2.4rem\" : \"2.5rem\")};\n left: 0.75rem;\n\n svg {\n fill: ${neutral[\"neutral-20\"]};\n }\n`;\n\nexport const InputStyles = styled(Input)<{ $iconType: string }>`\n border-color: ${({ theme, $platform, $error }) =>\n $error ? theme[$platform].colors.error : theme[$platform].input.border};\n\n &.with-icon {\n padding-left: ${({ $iconType }) =>\n $iconType === \"percentage\" ? \"2.5rem\" : \"2rem\"};\n }\n\n &:focus {\n border-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.focus.outline};\n outline-color: ${({ theme, $platform }) =>\n theme[$platform].calendar.focus.outline};\n box-shadow: 0 0 0 0.2rem\n ${({ theme, $platform }) => theme[$platform].calendar.focus[\"box-shadow\"]};\n }\n\n &:disabled {\n opacity: 0.5;\n }\n`;\n","import { forwardRef, useMemo, useRef, useImperativeHandle } from \"react\";\nimport classNames from \"classnames\";\nimport { getLocaleConfig, isNumber } from \"@/utils\";\n\nimport { useFormattedInputHandlers } from \"@/hooks\";\n\nimport { SupportingMessage } from \"@/components/Alerts/SupportingMessage/SupportingMessage\";\nimport {\n AlertCircle as ValidationIcon,\n SterlingLite,\n PercentageLite,\n Dollar,\n} from \"@/Icons\";\n\nimport {\n FormattedWrapper,\n InputStyles,\n IconWrapper,\n} from \"./FormattedInput.styles\";\n\nimport { Theme } from \"@/theme\";\n\nconst iconMapping = {\n dollar: <Dollar />,\n pound: <SterlingLite />,\n percentage: <PercentageLite />,\n};\nconst CustomInput = (customInput, inputProps) => {\n const Input = customInput;\n return <Input {...inputProps} />;\n};\n\nexport const FormattedInput = forwardRef(\n (\n {\n className,\n allowDecimals = true,\n allowNegativeValue = false,\n customInput,\n decimalScale,\n decimalSeparator: _decimalSeparator,\n decimalsLimit,\n defaultValue,\n disableAbbreviations = false,\n disabled = false,\n disableGroupSeparators = false,\n errorIconInline = false,\n errorMessage,\n fixedDecimalLength,\n groupSeparator: _groupSeparator = \"\",\n customIcon = null,\n iconType = \"pound\",\n id,\n intlConfig,\n label,\n maskValue,\n max,\n maxLength: userMaxLength,\n min,\n name,\n onBlur,\n onChange,\n onFocus,\n onKeyDown,\n onKeyUp,\n onValueChange,\n placeholder,\n platform = \"octopus-online\",\n prefix,\n step,\n suffix,\n transformRawValue,\n value: userValue,\n ...props\n }: any,\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useImperativeHandle(ref, () => inputRef.current);\n\n if (_decimalSeparator && isNumber(_decimalSeparator)) {\n throw new Error(\"decimalSeparator cannot be a number\");\n }\n\n if (_groupSeparator && isNumber(_groupSeparator)) {\n throw new Error(\"groupSeparator cannot be a number\");\n }\n\n const Icon = customIcon || iconMapping[iconType];\n\n const localeConfig = useMemo(\n () => getLocaleConfig(intlConfig),\n [intlConfig]\n );\n const decimalSeparator =\n _decimalSeparator || (localeConfig as any).decimalSeparator || \"\";\n const groupSeparator =\n _groupSeparator || (localeConfig as any).groupSeparator || \"\";\n\n if (\n decimalSeparator &&\n groupSeparator &&\n decimalSeparator === groupSeparator &&\n disableGroupSeparators === false\n ) {\n throw new Error(\"decimalSeparator cannot be the same as groupSeparator\");\n }\n\n const {\n handleOnBlur,\n handleOnChange,\n handleOnFocus,\n handleOnKeyDown,\n handleOnKeyUp,\n getRenderValue,\n } = useFormattedInputHandlers({\n allowDecimals,\n allowNegativeValue,\n decimalScale,\n decimalSeparator,\n decimalsLimit,\n defaultValue,\n disableAbbreviations,\n disableGroupSeparators,\n fixedDecimalLength,\n groupSeparator,\n inputRef,\n intlConfig,\n localeConfig,\n maskValue,\n max,\n min,\n name,\n onBlur,\n onChange,\n onFocus,\n onKeyDown,\n onKeyUp,\n onValueChange,\n prefix,\n step,\n suffix,\n transformRawValue,\n userMaxLength,\n userValue,\n });\n\n const inputProps = {\n autoComplete: \"off\",\n className: classNames(Icon && \"with-icon\"),\n disabled,\n id,\n inputMode: \"decimal\",\n name,\n onBlur: handleOnBlur,\n onChange: handleOnChange,\n onFocus: handleOnFocus,\n onKeyDown: handleOnKeyDown,\n onKeyUp: handleOnKeyUp,\n placeholder,\n ref: inputRef,\n type: \"text\",\n value: getRenderValue(),\n ...props,\n };\n\n return (\n <Theme>\n <FormattedWrapper\n className={classNames(\"ds-formatted-input\", className)}\n >\n <label htmlFor={id}>{label}</label>\n {Icon && (\n <IconWrapper\n $iconType={iconType}\n onClick={() => document.getElementById(id)?.focus()}\n >\n {Icon}\n </IconWrapper>\n )}\n {customInput ? (\n <CustomInput />\n ) : (\n <InputStyles\n $iconType={iconType}\n $error={!!errorMessage}\n $platform={platform}\n {...inputProps}\n />\n )}\n {!!errorMessage && errorIconInline && (\n <IconWrapper $iconType={iconType}>{<ValidationIcon />}</IconWrapper>\n )}\n\n {!!errorMessage && (\n <SupportingMessage message={errorMessage} status=\"error\" />\n )}\n </FormattedWrapper>\n </Theme>\n );\n }\n);\n\nFormattedInput.displayName = \"FormattedInput\";\n","export const getLocaleConfig = (intlConfig) => {\n const { currency, locale } = intlConfig || {};\n const numberFormatter = locale\n ? new Intl.NumberFormat(\n locale,\n currency ? { currency, style: \"currency\" } : undefined\n )\n : new Intl.NumberFormat();\n\n return numberFormatter.formatToParts(1000.1).reduce((prev, curr, i) => {\n if (curr.type === \"currency\") {\n if (i === 0) {\n return { ...prev, currencySymbol: curr.value, prefix: curr.value };\n } else {\n return { ...prev, currencySymbol: curr.value, suffix: curr.value };\n }\n }\n if (curr.type === \"group\") {\n return { ...prev, groupSeparator: curr.value };\n }\n if (curr.type === \"decimal\") {\n return { ...prev, decimalSeparator: curr.value };\n }\n\n return prev;\n });\n};\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import styled, { css } from \"styled-components\";\n\nexport const Wrapper = styled.div<{ $absolutePosition: boolean }>`\n position: relative;\n\n .ds-list {\n position: ${({ $absolutePosition }) =>\n $absolutePosition ? \"absolute\" : \"relative\"};\n width: 100%;\n z-index: 1;\n }\n\n .ds-search__error-message {\n ${({ $absolutePosition }) =>\n $absolutePosition\n ? css`\n position: absolute !important;\n top: 3rem;\n z-index: 0;\n `\n : css`\n position: relative;\n `}\n }\n`;\n\nexport const InputWrapper = styled.div`\n position: relative;\n`;\n\nexport const SelectedValue = styled.div`\n position: absolute;\n z-index: 1;\n top: 2.4rem;\n left: 3rem;\n font-weight: 500;\n cursor: text;\n`;\n","import {\n Children,\n cloneElement,\n useState,\n useRef,\n useEffect,\n useId,\n useMemo,\n ReactElement,\n useCallback,\n} from \"react\";\nimport classNames from \"classnames\";\n\n// Components\nimport { InputField } from \"@/components/Inputs/InputField/InputField\";\nimport { SupportingMessage } from \"@/components/Alerts/SupportingMessage/SupportingMessage\";\n\n// Icons\nimport { Search as SearchIcon } from \"@/Icons\";\n\n// Hooks\nimport { useFilter, useSort, useClickOutside } from \"@/hooks\";\n\n// Types\nimport type { SearchFieldProps } from \"./SearchField.types\";\n\n// Styles\nimport { Wrapper } from \"./SearchField.styles\";\n\nexport const SearchField = ({\n asc = true,\n absolutePosition = false,\n children,\n className,\n clearAfterClick = true,\n hideLabel = false,\n iconPosition = \"left\",\n error,\n errorMessage,\n items = [],\n label,\n landmark = \"search\",\n maxSearchResults,\n onItemClick = () => null,\n onResultsClose = () => null,\n onSearchButtonClick,\n onSearchInputFocus,\n placeholder = \"\",\n prioritySortBy = \"firstName\",\n searchBy,\n setExternalResults,\n showIcon = true,\n showResults,\n sortBy = \"lastName\",\n ...rest\n}: SearchFieldProps) => {\n const [localClearAfterClick, setLocalClearAfterClick] =\n useState(clearAfterClick);\n const [searchValue, setSearchValue] = useState<string>(\"\");\n const [showLocalResults, setShowLocalResults] = useState(false);\n const [successfulSearchValue, setSuccessfulSearchValue] = useState(\"\");\n\n const searchWrapperRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const storedSearchValue = useRef(searchValue);\n\n const sortContext = {\n items,\n prioritySortBy,\n sortBy,\n asc,\n };\n\n const isSortedProp = sortBy !== undefined && asc !== undefined;\n const { sortedItems } = useSort(sortContext);\n const { filteredResults, searchSuccessful } = useFilter(\n isSortedProp ? sortedItems : items,\n searchBy ?? \"\",\n searchValue\n );\n\n const searchResultsId = useId();\n const searchClasses = classNames(\"ds-search\", className);\n\n const handleClickOutside = () => {\n setShowLocalResults(false);\n };\n\n useClickOutside(searchWrapperRef, handleClickOutside);\n\n const handleOnChange = ({ dirty = false, value = \"\" }: any) => {\n setSearchValue(value);\n storedSearchValue.current = value;\n if (dirty && !showLocalResults) setShowLocalResults(true);\n };\n\n const searchResults = useMemo(() => {\n return maxSearchResults\n ? filteredResults.slice(0, maxSearchResults)\n : filteredResults;\n }, [filteredResults.length, maxSearchResults]);\n\n const handleClearAfterClick = (value) => {\n if (localClearAfterClick) {\n setSearchValue(\"\");\n } else {\n setSearchValue(() => value ?? \"\");\n }\n setShowLocalResults(false);\n };\n\n const handleItemClick = (item: any) => {\n const firstName = Object.hasOwn(item, \"firstName\");\n const lastName = Object.hasOwn(item, \"lastName\");\n\n const displayValue = `${firstName && item.firstName} ${\n lastName && item.lastName\n }`;\n setSuccessfulSearchValue(item.displayName || \"\");\n\n onItemClick(item);\n if (!setExternalResults) {\n onResultsClose({\n value: storedSearchValue.current\n ? storedSearchValue.current\n : successfulSearchValue,\n success: displayValue ? !!displayValue : searchSuccessful,\n item: item ?? null,\n });\n }\n setSuccessfulSearchValue(storedSearchValue.current ?? \"\");\n handleClearAfterClick(displayValue);\n };\n\n const handleFocus = () => {\n if (!children) return;\n onSearchInputFocus &&\n onSearchInputFocus({\n value: storedSearchValue.current,\n success: searchSuccessful,\n isFocused: true,\n });\n setShowLocalResults(true);\n };\n\n const handleKeydown = useCallback(\n ({ key }: any) => {\n if (showLocalResults && key === \"Escape\") {\n inputRef.current?.blur();\n setShowLocalResults(false);\n }\n },\n [showLocalResults]\n );\n\n const cloneChildren = () => {\n if (!children) return;\n return Children.map(children, (child) =>\n cloneElement(child as ReactElement, {\n handleItemClick,\n id: searchResultsId,\n items: searchResults,\n setShowLocalResults,\n })\n );\n };\n\n useEffect(() => {\n const handleClickOutside = ({ target }: any) => {\n if (!searchWrapperRef.current?.contains(target))\n setShowLocalResults(false);\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n }, [searchWrapperRef]);\n\n useEffect(() => {\n window.addEventListener(\"keydown\", handleKeydown);\n return () => {\n window.removeEventListener(\"keydown\", handleKeydown);\n };\n }, [handleKeydown, showLocalResults]);\n\n useEffect(() => {\n if (!setExternalResults) return;\n setExternalResults(() => [...searchResults]);\n }, [searchResults.length, sortBy, asc, setExternalResults, searchResults]);\n\n const setShowResults =\n (showResults ?? showLocalResults) ||\n typeof setExternalResults === \"function\";\n\n useEffect(() => {\n if (onSearchButtonClick) {\n setLocalClearAfterClick(false);\n }\n }, [onSearchButtonClick]);\n return (\n <Wrapper\n $absolutePosition={absolutePosition}\n className={searchClasses}\n ref={searchWrapperRef}\n role=\"search\"\n aria-label={landmark}\n aria-expanded={setShowResults}\n {...rest}\n >\n <InputField\n error={error}\n errorId=\"searchErrorMessage\"\n iconPosition={iconPosition}\n {...(showIcon && { icon: <SearchIcon aria-hidden=\"true\" /> })}\n label={label}\n hideLabel={hideLabel}\n placeholder={placeholder}\n ref={inputRef}\n value={searchValue}\n onChange={handleOnChange}\n onFocus={handleFocus}\n />\n\n {showLocalResults && cloneChildren()}\n {errorMessage && error && (\n <SupportingMessage\n className=\"ds-search__error-message\"\n id=\"searchErrorMessage\"\n status=\"error\"\n message={errorMessage!}\n />\n )}\n </Wrapper>\n );\n};\n","import styled from \"styled-components\";\n\nexport const OptionStyle = styled.div<{ $platform: string }>`\n align-items: center;\n display: flex;\n min-height: 3rem;\n padding: 0.75rem 1rem;\n box-sizing: border-box;\n\n &[aria-selected=\"true\"] {\n border-left: 2px solid\n ${({ theme, $platform }) => theme[$platform].colors.accent};\n }\n`;\n\nexport const Wrapper = styled.div<{ $platform: string }>`\n background-color: ${({ theme, $platform }) =>\n theme[$platform].colors[\"neutral-90\"]};\n box-shadow: 0 0 2.5rem 0 rgba(169, 169, 169, 0.25);\n position: absolute;\n width: 100%;\n top: 3.2rem;\n z-index: 20;\n\n ${OptionStyle}:nth-child(odd) {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].colors.white};\n }\n`;\n","import styled from \"styled-components\";\n\nexport const NativeRadio = styled.input<any>`\n opacity: 0;\n position: absolute;\n`;\n\nexport const CustomRadio = styled.span<{\n $platform: string;\n $disabled: boolean;\n}>`\n background-color: ${({ $disabled, theme, $platform }) =>\n $disabled\n ? theme[$platform].radio.disabled\n : theme[$platform].radio.background};\n border-radius: 100%;\n box-sizing: border-box;\n cursor: ${({ $disabled }) => ($disabled ? \"initial\" : \"pointer\")};\n height: 1.5rem;\n left: 0;\n position: absolute;\n top: 0;\n width: 1.5rem;\n border: 0.125rem solid\n ${({ theme, $platform }) => theme[$platform].radio.border};\n\n &:hover {\n border: 0.125rem solid\n ${({ theme, $platform, $disabled }) =>\n $disabled ? \"transparent\" : theme[$platform].radio.hover};\n }\n\n &[aria-disabled=\"true\"] {\n border: 0.125rem solid\n ${({ theme, $platform }) => theme[$platform].radio.disabled};\n }\n\n &:before {\n border-radius: 100%;\n border: 2px solid ${({ theme, $platform }) => theme[$platform].radio.border};\n }\n\n &:focus {\n box-shadow: ${({ $disabled }) =>\n $disabled ? \"none\" : \"0 0 0 0.2rem rgba(229, 103, 177, 0.25)\"};\n outline: transparent;\n transition: box-shadow 0.25s ease-in-out;\n }\n`;\n\nexport const Wrapper = styled.label<{ $platform: string }>`\n display: block;\n padding-left: 2.625rem;\n position: relative;\n width: fit-content;\n\n [aria-checked=\"true\"] {\n background-color: ${({ theme, $platform }) =>\n theme[$platform].radio[\"background-checked\"]};\n border: 0.125rem solid\n ${({ theme, $platform }) => theme[$platform].radio[\"border-checked\"]};\n\n &:hover {\n border: 0.125rem solid\n ${({ theme, $platform }) => theme[$platform].radio.hover};\n }\n &:before {\n border-radius: 100%;\n border: 0.25rem solid\n ${({ theme, $platform }) => theme[$platform].radio.background};\n content: \"\";\n display: block;\n position: absolute;\n inset: 0;\n }\n }\n`;\n","import styled from \"styled-components\";\nimport { MobileStyles } from \"@/utils/styles/styles\";\nimport { SelectStyle } from \"../NativeSelect/NativeSelect.styles\";\n\nexport const CustomSelectStyle = styled(SelectStyle)`\n display: flex;\n padding: 0;\n position: relative;\n padding-left: 0.25rem;\n\n .ds-search {\n position: initial;\n flex-grow: 1;\n margin-left: 0.25rem;\n\n input {\n position: inherit;\n border: none;\n height: 2.9rem;\n\n &:focus {\n appearance: none;\n outline: none;\n box-shadow: none;\n }\n }\n\n .ds-options {\n left: 0;\n }\n }\n\n .ds-input-field-input {\n padding-left: 0.5rem;\n width: 100%;\n min-width: 60px;\n margin-right: 4rem;\n }\n`;\n\nexport const SelectTextStyle = styled.span`\n display: flex;\n padding: 12px 16px;\n width: 100%;\n align-items: center;\n`;\n\nexport const SelectedItem = styled.div`\n position: relative;\n display: flex;\n justify-content: space-around;\n background-color: #d7d7d7;\n height: fit-content;\n padding: 0.15rem 0.5rem;\n align-self: center;\n margin-left: 4px;\n`;\n\nexport const RemoveIcon = styled.span`\n display: flex;\n padding-left: 0.5rem;\n align-items: center;\n\n svg {\n position: initial;\n width: 0.5rem;\n top: 0;\n }\n`;\n\nexport const SelectedItemsWrapper = styled.div`\n display: flex;\n overflow: auto hidden;\n\n ::-webkit-scrollbar {\n display: none;\n }\n\n ${MobileStyles(`\n -webkit-mask-image: -webkit-gradient(\n linear,\n left top,\n right top,\n color-stop(50%, rgba(0, 0, 0, 1)),\n to(rgba(0, 0, 0, 0))\n );\n `)}\n`;\n\nexport const ChevronWrapper = styled.div`\n width: 3rem;\n\n svg {\n pointer-events: all;\n }\n`;\n","import { ChangeEvent, forwardRef, useRef, useId } from \"react\";\nimport classNames from \"classnames\";\n\n// Types\nimport type { RadioProps } from \"./Radio.types\";\nimport type { KeyboardEvent } from \"@/types\";\n\n// Styles\nimport { CustomRadio, NativeRadio, Wrapper } from \"./Radio.styles\";\n\n// Theme Provider\nimport { Theme } from \"@/theme\";\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n (\n {\n className,\n checked = false,\n value,\n label,\n name,\n disabled = false,\n platform = \"octopus-online\",\n onChange,\n onKeyDown,\n ...rest\n },\n ref\n ) => {\n const radioClasses = classNames(\"ds-radio\", className);\n\n const inputRef = useRef<HTMLInputElement>(null) ?? ref;\n\n const labelId = useId();\n\n const handleOnChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (onChange) onChange({ event, value: event.target.value });\n };\n\n const handleKeyDown = (event: KeyboardEvent) => {\n const { key } = event;\n if (!disabled || key === \"Space\" || key === \"Enter\") {\n if (onKeyDown)\n onKeyDown({\n event,\n value: inputRef?.current?.value,\n });\n }\n };\n\n return (\n <Theme>\n <Wrapper $platform={platform} className={radioClasses} {...rest}>\n <span id={labelId}>{label}</span>\n <NativeRadio\n aria-labelledby={labelId}\n $platform={platform}\n checked={checked}\n className=\"ds-radio-native\"\n disabled={disabled}\n name={name}\n onChange={handleOnChange}\n ref={inputRef}\n tabIndex={-1}\n type=\"radio\"\n value={value}\n {...rest}\n />\n <CustomRadio\n $platform={platform}\n $disabled={disabled}\n aria-checked={checked}\n aria-labelledby={labelId}\n className=\"ds-radio-custom\"\n onKeyDown={handleKeyDown}\n tabIndex={0}\n {...(disabled && { \"aria-disabled\": true })}\n role=\"radio\"\n />\n </Wrapper>\n </Theme>\n );\n }\n);\n\nRadio.displayName = \"Radio\";\n","import styled from \"styled-components\";\n\nconst Spacing = {\n sm: \"0.5rem\",\n md: \"1rem\",\n lg: \"1.5rem\",\n};\n\nexport const Wrapper = styled.fieldset<{\n $inline?: boolean;\n $gap: \"sm\" | \"md\" | \"lg\";\n}>`\n display: flex;\n flex-direction: ${({ $inline }) => ($inline ? \"row\" : \"column\")};\n flex-wrap: wrap;\n gap: ${({ $gap }) => Spacing[$gap]};\n border: none;\n`;\n\nexport const Legend = styled.legend`\n margin-bottom: 1rem;\n`;\n","import styled from \"styled-components\";\nimport { COLORS } from \"@/utils/styles/colors\";\nimport { BREAKPOINTS } from \"@/utils/styles/styles\";\n\nimport { FlexBoxStyle } from \"./FlexBox.types\";\n\nconst Spacing = {\n default: 0,\n xs: 0.5,\n sm: 1,\n md: 1.5,\n lg: 2,\n};\n\nconst alignPlacements = {\n start: \"flex-start\",\n center: \"center\",\n end: \"flex-end\",\n};\n\nconst justifyPlacements = {\n start: \"flex-start\",\n center: \"center\",\n between: \"space-between\",\n around: \"space-around\",\n end: \"flex-end\",\n};\nexport const getWidth = (col: number) => {\n if (!col) return;\n const width = (col / 12) * 100;\n return `${width}%`;\n};\n\nexport const Wrapper = styled.div<FlexBoxStyle>`\n position: relative;\n display: flex;\n height: 100%;\n margin-bottom: ${({ $mb }) => $mb && `${$mb}rem`};\n margin-top: ${({ $mt }) => $mt && `${$mt}rem`};\n ${({ $container, $gap }) => $container && $gap && `gap: ${Spacing[$gap]}rem;`}\n flex-flow: ${({ $direction, $flexWrap }) =>\n `${$direction} ${$flexWrap ? \"wrap\" : \"nowrap\"}`};\n width: ${({ $columns, $item }) => $item && $columns && getWidth($columns)};\n box-sizing: border-box;\n ${({ $container, $align }) =>\n $container && $align && `align-items: ${alignPlacements[$align]};`}\n ${({ $container, $justify }) =>\n $container &&\n $justify &&\n `justify-content: ${justifyPlacements[$justify]};`}\n ${({ $border, $item, $justify, $align, $flex, $flexGrow }) =>\n $item &&\n ` flex-grow: ${$flexGrow ? 1 : 0}; \n display: ${!$flex ? \"block\" : \"flex\"};\n align-self: ${alignPlacements[$align!]};\n justify-self: ${justifyPlacements[$justify!]};\n ${\n $border !== \"none\" &&\n `border-${$border}: 1px solid ${COLORS.secondaryLight}; padding-left: 1rem;`\n }\n \n `}\n\n@media only screen and (max-width: ${BREAKPOINTS.xl}px) {\n ${({ $xl }) => $xl && `width: ${$xl && getWidth($xl)}`};\n }\n\n @media only screen and (max-width: ${BREAKPOINTS.lg}px) {\n ${({ $lg }) => $lg && `width: ${$lg && getWidth($lg)}`};\n }\n\n @media only screen and (max-width: ${BREAKPOINTS.md}px) {\n ${({ $md }) =>\n $md && `width: ${$md && getWidth($md)}; border: none; padding-left:0`};\n }\n\n @media only screen and (max-width: ${BREAKPOINTS.sm}px) {\n ${({ $sm }) =>\n $sm &&\n `\n width: ${$sm && getWidth($sm)}`};\n }\n\n @media only screen and (max-width: ${BREAKPOINTS.xs}px) {\n ${({ $xs }) => ($xs ? `width: ${$xs && getWidth($xs)}` : \"width: 100%\")};\n }\n\n ${({ $flexFull }) => $flexFull && `flex: 1 1 auto;`}\n ${({ $cs }) => $cs};\n`;\n","import styled from \"styled-components\";\nimport { OptionsStyle } from \"@/components/Inputs/Select/Select.styles\";\n\nexport const Wrapper = styled.div`\n position: relative;\n\n .ds-input-field-icon-wrapper {\n display: block;\n }\n\n ${OptionsStyle} {\n cursor: pointer;\n margin-top: 1.5rem;\n position: absolute;\n width: 100%;\n }\n`;\n","import styled from \"styled-components\";\n\n// Helpers\nimport { ANIMATION_DURATION } from \"@/utils\";\n\nexport const Wrapper = styled.div`\n align-items: center;\n display: flex;\n`;\n\nexport const CustomToggle = styled.label<{ $platform: string }>`\n display: inline-block;\n height: 1.25rem;\n position: relative;\n width: 2.813rem;\n\n &:focus-visible {\n outline: 1px solid\n ${({ theme, $platform }) => theme[$platform].input.focus.outline};\n box-shadow: ${({ theme, $platform }) =>\n `0 0 0 0.2rem ${theme[$platform].input.focus[\"box-shadow\"]}`};\n }\n`;\n\nexport const ToggleInput = styled.input`\n height: 0;\n opacity: 0;\n width: 0;\n`;\n\nexport const ToggleSlider = styled.span<{\n $active: boolean;\n $platform: string;\n}>`\n background-color: ${({ $active, $platform, theme }) =>\n $active\n ? theme[$platform].toggle[\"slider-active\"]\n : theme[$platform].toggle[\"slider-inactive\"]};\n border-radius: 0.625rem;\n cursor: pointer;\n position: absolute;\n inset: 0;\n transition: ${ANIMATION_DURATION.formatCss};\n\n &::before {\n background-color: ${({ $platform, theme }) =>\n theme[$platform].colors.white};\n border-radius: 50%;\n bottom: 1px;\n content: \"\";\n height: 1.125rem;\n left: ${({ $active }) => ($active ? \"1.625rem\" : \"1px\")};\n position: absolute;\n transition: ${ANIMATION_DURATION.formatCss};\n width: 1.125rem;\n }\n\n &:checked + .ds-toggle__slider {\n background-color: ${({ $platform, theme }) =>\n theme[$platform].toggle[\"slider-active\"]};\n\n &::before {\n transform: translateX(25px);\n }\n }\n`;\n\nexport const Label = styled.p<{ $platform: string }>`\n color: ${({ $platform, theme }) => theme[$platform].colors[\"neutral-10\"]};\n margin: 0 0.625rem 0 0;\n`;\n","import classNames from \"classnames\";\n\nimport { FlexBoxProps } from \"./FlexBox.types\";\nimport { Wrapper } from \"./Flexbox.styles\";\n\nexport const FlexBox = ({\n align = \"start\",\n border = \"none\",\n children,\n className,\n columns,\n container = true,\n cs,\n direction = \"row\",\n flex = false,\n flexFull = false,\n flexGrow = true,\n flexWrap = true,\n gap = \"default\",\n item = false,\n justify = \"start\",\n lg,\n mb,\n md,\n mt,\n sm,\n xl,\n xs,\n xxl,\n ...rest\n}: FlexBoxProps) => {\n const gridClasses = classNames(\"ds-flex-box\", className);\n\n return (\n <Wrapper\n $direction={direction}\n $align={align}\n className={gridClasses}\n $container={container}\n $flex={flex}\n $flexFull={flexFull}\n $flexWrap={flexWrap}\n $flexGrow={flexGrow}\n {...(container && { mb, mt })}\n {...(gap && { $gap: gap })}\n {...(item && { $border: border })}\n {...(xxl && { $xxl: xxl })}\n {...(xl && { $xl: xl })}\n {...(lg && { $lg: lg })}\n {...(md && { $md: md })}\n {...(sm && { $sm: sm })}\n {...(xs && { $xs: xs })}\n $columns={columns!}\n $cs={cs}\n $item={item}\n $justify={justify}\n {...rest}\n >\n {children}\n </Wrapper>\n );\n};\n","import styled from \"styled-components\";\n\nconst BorderRadius = {\n sm: 0.75,\n md: 1,\n lg: 1.25,\n};\n\nexport const Wrapper = styled.img<{ $rounded: string; $fit: string; $cs: any }>`\n width: ${({ width }) => (typeof width === \"number\" ? `${width}rem` : width)};\n height: ${({ height }) =>\n typeof height === \"number\" ? `${height}rem` : height};\n ${({ $rounded }) =>\n $rounded &&\n `border-radius: ${BorderRadius[$rounded as keyof typeof BorderRadius]}rem;`}\n object-fit: ${({ $fit }) => $fit};\n overflow: hidden;\n\n ${({ $cs }) => $cs && $cs};\n`;\n","import styled from \"styled-components\";\n\nimport { navy } from \"@/utils/styles/colors\";\n\nconst GAP: Record<Size, string> = {\n sm: \"0.25rem\",\n md: \"0.5rem\",\n lg: \"0.75rem\",\n} as const;\n\nconst BUTTON_SIZE: Record<Size, string> = {\n sm: \"2rem\",\n md: \"2.5rem\",\n lg: \"2.75rem\",\n} as const;\n\ntype Size = \"sm\" | \"md\" | \"lg\";\n\nconst FONT_SIZE: Record<Size, string> = {\n sm: \"0.875rem\",\n md: \"1rem\",\n lg: \"1.125rem\",\n};\n\nexport const Wrapper = styled.nav<{\n $cs?: string;\n $size: Size;\n $position: \"center\" | \"start\" | \"end\";\n}>`\n display: flex;\n gap: ${({ $size }) => GAP[$size]};\n justify-content: ${({ $position }) => $position};\n\n ${({ $cs }) => $cs}\n`;\n\nexport const PaginationButton = styled.button<{\n $size: Size;\n $platform: string;\n}>`\n background-color: #fff;\n border-radius: 0.25rem;\n border-style: solid;\n border-width: 1px;\n cursor: pointer;\n font-size: ${({ $size }) => FONT_SIZE[$size]};\n height: ${({ $size }) => BUTTON_SIZE[$size]};\n width: ${({ $size }) => BUTTON_SIZE[$size]};\n\n &:focus {\n box-shadow: ${({ theme, $platform }) =>\n `0 0 0 0.2rem ${theme[$platform].input.focus[\"box-shadow\"]}`};\n outline: transparent;\n transition: box-shadow 0.25s ease-in-out;\n }\n`;\n\nexport const PagesButton = styled(PaginationButton)<{\n $isCurrent?: boolean;\n $platform: string;\n}>`\n background-color: ${({ theme, $isCurrent, $platform }) =>\n $isCurrent\n ? theme[$platform].button.primary.solid.background\n : theme[$platform].button.primary.outline.background};\n border-color: ${({ theme, $isCurrent, $platform }) =>\n $isCurrent\n ? theme[$platform].button.primary.solid.border\n : theme[$platform].button.primary.outline.border};\n color: ${({ theme, $isCurrent, $platform }) =>\n $isCurrent\n ? theme[$platform].button.primary.solid.fontColor\n : theme[$platform].button.primary.outline.fontColor};\n`;\n\nexport const PrevNextButton = styled.button<{\n $size: Size;\n $platform: string;\n $disabled: boolean;\n}>`\n align-items: center;\n background-color: transparent;\n border-color: transparent;\n color: ${navy[\"Navy 40\"]};\n cursor: pointer;\n display: flex;\n font-size: ${({ $size }) => FONT_SIZE[$size]};\n font-weight: 600;\n\n &:focus {\n box-shadow: ${({ $disabled, theme, $platform }) =>\n $disabled\n ? \"none\"\n : `0 0 0 0.2rem ${theme[$platform].input.focus[\"box-shadow\"]}`};\n outline: transparent;\n transition: box-shadow 0.25s ease-in-out;\n }\n\n &:disabled {\n opacity: 0.4;\n }\n`;\n\nexport const EllipsisButton = styled(PaginationButton)<{ $platform: string }>`\n border-color: ${({ theme, $platform }) =>\n theme[$platform].button.primary.outline.border};\n color: ${({ theme, $platform }) =>\n theme[$platform].button.primary.outline.fontColor};\n`;\n","import styled from \"styled-components\";\nimport { MobileStyles, TabletStyles } from \"@/utils/styles/styles\";\n\nexport const MediaCardWrapper = styled.div`\n text-align: center;\n`;\n\nexport const MediaCardHeading = styled.h3`\n font-size: 1.875rem;\n font-weight: 600;\n margin-bottom: 1.875rem;\n\n ${TabletStyles(`\n font-size: 1.25rem`)}\n\n ${MobileStyles(`\n font-size: 11.25rem`)}\n`;\n\nexport const PlayerWrapper = styled.div`\n margin: 0 auto;\n\n video,\n audio,\n img {\n border-radius: 10px;\n }\n`;\n\nexport const MediaCardFooter = styled.div`\n ${TabletStyles(`\n font-size: 0.rem`)}\n\n ${MobileStyles(`\n font-size: 0.625rem`)}\n \n a {\n text-decoration: underline;\n }\n`;\n","import styled from \"styled-components\";\n\nexport const BreadcrumbStyle = styled.div`\n display: flex;\n color: inherit;\n\n & > * {\n margin-right: 1rem;\n }\n`;\n\nexport const BackButtonWrapperStyle = styled.div<{ $platform: string }>`\n color: ${({ theme, $platform }) =>\n ($platform && theme[$platform].colors.accent) ?? \"transparent\"};\n cursor: pointer;\n display: flex;\n\n .ds-breadcrumbs__back-arrow {\n margin-right: 0.75rem;\n }\n\n &:hover {\n text-decoration: underline;\n }\n`;\n","import styled from \"styled-components\";\n\nexport const Wrapper = styled.section`\n position: relative;\n line-height: 1.5;\n`;\n\nexport const TabWrapperStyle = styled.div<{ $platform: string }>`\n --ms-overflow-style: none;\n\n box-sizing: border-box;\n column-gap: 1rem;\n display: flex;\n height: 2.5rem;\n overflow-x: auto;\n position: relative;\n scrollbar-width: none;\n\n ::-webkit-scrollbar {\n display: none;\n }\n\n button {\n margin: 0 0 0.125rem;\n white-space: nowrap;\n }\n\n &::before {\n border-bottom: 1px solid\n ${({ theme, $platform }) => theme[$platform].tabs.border};\n content: \"\";\n position: absolute;\n inset: 0;\n }\n`;\n\nconst handleSideBackground = (side: string) => {\n switch (side) {\n case \"left\":\n return \"linear-gradient(to left, #fff 0%, rgba(255, 255, 255, 0) 15%)\";\n\n case \"right\":\n return \"linear-gradient(to right, #fff 0%, rgba(255, 255, 255, 0) 15%)\";\n\n case \"both\":\n return \"linear-gradient(to left, #fff 0%, rgba(255, 255, 255, 0) 15%, rgba(255, 255, 255, 0) 85%, #fff 100%)\";\n }\n};\n\nexport const TabResponsiveStyle = styled.span<{\n $side: string;\n $platform: string;\n}>`\n background: ${({ $side }) => handleSideBackground($side)};\n height: 2.5rem;\n left: 0;\n pointer-events: none;\n position: absolute;\n right: 0;\n top: 0;\n`;\n\nexport const TabStyle = styled.button<{ $platform: string }>`\n background-color: ${({ theme, $platform }) => theme[$platform].colors.white};\n border: none;\n box-sizing: border-box;\n color: ${({ theme, $platform }) => theme[$platform].tabs.text};\n cursor: pointer;\n display: flex;\n font-size: 1rem;\n margin-right: 1rem;\n min-height: 2.5rem;\n outline: none;\n padding: 0.5rem 0.75rem;\n position: relative;\n\n &::before {\n border-bottom: 1px solid\n ${({ theme, $platform }) => theme[$platform].tabs.border};\n content: \"\";\n position: absolute;\n inset: 0;\n }\n\n &:hover {\n color: ${({ theme, $platform }) =>\n theme[$platform].colors.accent[\"accent-tabs-hover\"]};\n background-color: ${({ theme, $platform }) =>\n theme[$platform].colors[\"neutral-90\"]};\n }\n\n &:focus-visible {\n outline: 1px solid\n ${({ theme, $platform }) => theme[$platform].colors.accent};\n border-radius: 0.25rem;\n outline-offset: -2px;\n }\n\n .ds-tabs-tab__notification {\n margin-left: 0.25rem;\n }\n`;\n\nexport const TabLabel = styled.span`\n align-self: center;\n`;\n\nexport const ActiveTabStyle = styled(TabStyle)`\n color: ${({ theme, $platform }) => theme[$platform].colors[\"neutral-10\"]};\n font-weight: 600;\n\n &::after {\n border-bottom: 0.125rem solid\n ${({ theme, $platform }) => theme[$platform].colors.accent};\n content: \"\";\n position: absolute;\n inset: 0;\n }\n\n &:first-of-type {\n &::after {\n left: 0;\n }\n }\n`;\n","import styled from \"styled-components\";\n\nexport const Wrapper = styled.div`\n display: flex;\n\n &:not(:last-child) {\n margin-right: 0.625rem;\n }\n`;\n","import styled from \"styled-components\";\n\nexport const Wrapper = styled.div<{\n $activeStep: number;\n $index: number;\n $clickable: boolean;\n $platform: string;\n $variant: \"rounded\" | \"circular\";\n}>`\n border: none;\n padding: 0.5rem 1rem;\n color: ${({ $platform, theme }) => theme[$platform].colors.black};\n ${({ $activeStep, $index, $platform, theme }) =>\n $activeStep === $index\n ? `\n color: ${theme[$platform].colors.white};\n background-color: ${theme[$platform].steps.active};\n `\n : `\n \n background-color: ${theme[$platform].steps.inactive};\n `}\n border-radius: ${({ $variant }) =>\n $variant === \"rounded\" ? \"1.25rem\" : \"50%\"};\n outline: none;\n ${({ $clickable }) => $clickable && `cursor: pointer`};\n`;\n","import styled from \"styled-components\";\n\nexport const Wrapper = styled.div`\n display: flex;\n\n button {\n font-size: inherit;\n height: 2.5rem;\n }\n`;\n","import styled from \"styled-components\";\n\n// Helpers\nimport { hexToRGBA } from \"@/utils\";\n\n// Colors\nimport { neutral, navy } from \"@/utils/styles/colors\";\n\nconst backgroundColor = {\n black: neutral[\"neutral-0\"],\n navy: navy[\"Navy 40\"],\n};\n\nexport const Wrapper = styled.div<{ $cs: any }>`\n align-items: center;\n box-sizing: border-box;\n border: none;\n display: flex;\n height: 100vh;\n justify-content: center;\n left: 0;\n padding: 1.125rem;\n position: fixed;\n top: 0;\n width: 100vw;\n z-index: 25;\n\n ${({ $cs }) => $cs};\n`;\n\nexport const ModalBackground = styled.div<{ $backgroundColor: string }>`\n background-color: ${({ $backgroundColor }) =>\n hexToRGBA(backgroundColor[$backgroundColor], 0.85)};\n height: 100%;\n position: absolute;\n width: 100%;\n`;\n\nexport const ModalContent = styled.div`\n background-color: white;\n border-radius: 0.5rem;\n box-shadow: 0 0 2rem 0 rgba(27, 7, 58, 0.1);\n box-sizing: border-box;\n display: inline-flex;\n flex-direction: column;\n max-height: 90%;\n max-width: calc(100vw - 2.75rem);\n overflow-y: auto;\n padding: 2.75rem;\n position: relative;\n\n .ds-modal__content__close-btn {\n background: transparent;\n border: none;\n cursor: pointer;\n padding: 0.313rem;\n position: absolute;\n right: 1.25rem;\n top: 1.25rem;\n }\n`;\n","import styled from \"styled-components\";\n\n// Helpers\nimport { ANIMATION_DURATION } from \"@/utils/styles/styles\";\n\nexport const StyledCollapse = styled.div`\n transition: all ${ANIMATION_DURATION.formatCss} ease-in-out;\n`;\n","import styled, { css } from \"styled-components\";\nimport { BREAKPOINTS } from \"@/utils/styles/styles\";\n\nconst setAnchor = (position: string) => {\n switch (position) {\n case \"left\":\n return `\n left: 0; \n box-shadow: 5px 0px 10px 0px rgba(0,0,0,0.12);\n transform: translateX(-110%);\n `;\n case \"right\":\n return `\n right: 0; \n box-shadow: -5px 0px 10px 0px rgba(0,0,0,0.12);\n transform: translateX(110%);\n `;\n default:\n return;\n }\n};\nconst closeButtonPosition = (position: string) => {\n return `${position}: 1rem; top: 1.5rem;`;\n};\n\nexport const Wrapper = styled.div<{\n $anchor: string;\n $opened: boolean;\n $platform: string;\n $cs: { [key: string]: string | number };\n}>`\n position: fixed;\n top: 0;\n bottom: 0;\n ${({ $anchor }) => setAnchor($anchor)};\n width: 25rem;\n z-index: 100;\n background-color: ${({ theme, $platform }) =>\n theme[$platform].colors.white ?? \"white\"};\n transition: transform 0.5s ease-in;\n\n @media only screen and (max-width: ${BREAKPOINTS.md}px) {\n top: initial;\n right: initial;\n left: 0;\n width: 100%;\n height: calc(100% - 1rem);\n box-shadow: 0 0 0.625rem 0 rgba(0, 0, 0, 0.12);\n border-top-left-radius: 0.625rem;\n border-top-right-radius: 0.625rem;\n transform: translateY(100%);\n ${({ $opened }) =>\n $opened &&\n css`\n transform: translateY(0%);\n transition: transform 0.5s ease;\n `}\n }\n\n ${({ $opened }) =>\n $opened &&\n css`\n transform: translateX(0%);\n transition: transform 0.5s ease;\n `}\n`;\n\nexport const Overlay = styled.div<{ $opened: boolean }>`\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: -1;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.3);\n opacity: 0;\n cursor: pointer;\n transition: opacity 0.75s ease;\n ${({ $opened }) =>\n $opened &&\n css`\n z-index: 10;\n opacity: 1;\n transition: opacity 0.5s ease;\n `}\n`;\n\nexport const DrawerRoot = styled.div`\n padding: 3rem 1.5rem;\n`;\n\nexport const CloseButton = styled.button<{ $iconPosition: string }>`\n position: absolute;\n ${({ $iconPosition }) => closeButtonPosition($iconPosition)};\n border: none;\n background: none;\n cursor: pointer;\n`;\n\nexport const OuterSwipeArea = styled.div`\n position: absolute;\n inset: 0;\n`;\n\nexport const DrawerTopStroke = styled.div<{ $platform: string }>`\n width: 2rem;\n height: 0.313rem;\n margin: 0 auto;\n margin-top: 0.375rem;\n background-color: ${({ theme, $platform }) =>\n theme[$platform].colors[\"neutral-20\"] ?? \"transparent\"};\n border-radius: 0.313rem;\n`;\n","import { KeyboardEvent, useRef } from \"react\";\nimport classNames from \"classnames\";\n\n// Components\nimport { VisuallyHidden } from \"@/components/Shared/VisuallyHidden/VisuallyHidden\";\nimport { Close as CloseIcon } from \"@/Icons\";\n\n// Types\nimport type { ModalProps } from \"./Modal.types\";\n\n// Styles\nimport { ModalBackground, ModalContent, Wrapper } from \"./Modal.styles\";\n\nexport const Modal = ({\n backgroundColor = \"navy\",\n children,\n className,\n cs,\n descriptionId,\n handleCloseModal,\n label = \"modal\",\n platform = \"octopus-online\",\n showBackground = true,\n showCloseIcon = true,\n showModal = false,\n closeOnEscape = false,\n ...rest\n}: ModalProps) => {\n const modalRef = useRef<HTMLDivElement>(null);\n const modalClasses = classNames(\"ds-modal\", \"ds-modal-wrapper\", className);\n\n const handleClose = (e: KeyboardEvent) => {\n if (e.code === \"Escape\" && closeOnEscape) {\n if (handleCloseModal) {\n handleCloseModal();\n }\n }\n };\n return (\n <Wrapper\n aria-describedby={descriptionId}\n aria-label={label}\n aria-modal={showModal ? \"true\" : \"false\"}\n className={modalClasses}\n data-platform={platform}\n onKeyUp={handleClose}\n ref={modalRef}\n role=\"dialog\"\n tabIndex={-1}\n {...(cs && { $cs: cs })}\n {...rest}\n >\n {showBackground && (\n <ModalBackground\n $backgroundColor={backgroundColor}\n aria-hidden=\"true\"\n className={\"ds-modal__background\"}\n onClick={handleCloseModal}\n />\n )}\n <ModalContent className={\"ds-modal__content\"}>\n {showCloseIcon && (\n <button\n aria-label=\"Close Modal\"\n className={\"ds-modal__content__close-btn\"}\n onClick={handleCloseModal}\n >\n <CloseIcon aria-hidden=\"true\" />\n <VisuallyHidden>close modal</VisuallyHidden>\n </button>\n )}\n {children}\n </ModalContent>\n </Wrapper>\n );\n};\n","// Imports\nimport { Link } from \"@octopus-investments/deep-sea-components\";\n\n// Application\nconst APPLICATION_NAME = \"Log in\";\nexport const createPageTitle = (pageName = \"Octopus Investments\") =>\n `${APPLICATION_NAME} | ${pageName}`;\n\n// Responsiveness\nexport const BREAKPOINTS = Object.freeze({ mobile: 501, tablet: 1104 });\n\n// Error messages\nexport const VALIDATION_ERRORS = Object.freeze({\n emailExists: \"This email is already associated with an Octopus Investments account.\",\n emptyField: \"Please enter your email first\",\n passwordMatch: \"Please make sure both passwords match.\",\n wrongCode: \"Sorry, that code doesn't look right. Please try again.\",\n wrongPattern:\n \"Sorry, that email address doesn’t look right. Please provide a valid email address.\",\n});\n\nexport const SYSTEM_ERRORS = Object.freeze({\n 424: \"Sorry, we're experiencing issues with our email service. Please try again later, or reach out to us using the blue button located in the bottom right corner of your screen.\",\n});\n\n// MFA tooltip\n\nexport const MFA_AUTH_CODE_TOOLTIP =\n \"Open your chosen authentication app on your mobile device. Your 6 digit code can be found there\";\n\n// Phone numbers\nexport const ADVISER_PHONE = (\n <Link isInline href=\"tel:08003162067\">\n 0800 316 2067\n </Link>\n);\n\nexport const INVESTOR_PHONE = (\n <Link isInline href=\"tel:08003162295\">\n 0800 316 2295\n </Link>\n);\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\n\n// Components\nimport { Modal } from \"@octopus-investments/deep-sea-components\";\n\n// Tools\nimport { ADVISER_PHONE, INVESTOR_PHONE } from \"utils/constants\";\n\n// Styles\nimport \"./AccountLocked.scss\";\n\nexport default function AccountLocked() {\n const { isPermanentlyLocked, isTemporaryLocked } = useSelector(({ application }) => application);\n\n return (\n !isPermanentlyLocked &&\n isTemporaryLocked && (\n <Modal\n className=\"account-locked-modal\"\n id=\"AccountLockedModal\"\n showCloseIcon={false}\n showModal={isTemporaryLocked}\n >\n <h3 className=\"coheadline\">Your account is temporarily locked</h3>\n\n <div className=\"information-block\">\n <p>\n For security, your account has been temporarily locked due to 3 failed login attempts.\n Please try again in five minutes.\n </p>\n <p>\n If you need help straight away, get in touch. If you're an investor, please call{\" \"}\n {INVESTOR_PHONE}. If you're an adviser, please call {ADVISER_PHONE}.\n </p>\n </div>\n </Modal>\n )\n );\n}\n","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n\t21(thing: string) {\n\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t},\n\t22(thing: string) {\n\t\treturn `'current' expects a draft, got: ${thing}`\n\t},\n\t23(thing: string) {\n\t\treturn `'original' expects a draft, got: ${thing}`\n\t},\n\t24: \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.map(s => `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtype,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === Archtype.Object) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): Archtype {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? Archtype.Array\n\t\t: isMap(thing)\n\t\t? Archtype.Map\n\t\t: isSet(thing)\n\t\t? Archtype.Set\n\t\t: Archtype.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === Archtype.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === Archtype.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === Archtype.Map) thing.set(propOrOldValue, value)\n\telse if (t === Archtype.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_<T>(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_<T>(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted<T, ES5ObjectState | ES5ArrayState>\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T\n\t\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: ProxyType.ES5Object\n\tdraft_: Drafted<AnyObject, ES5ObjectState>\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: ProxyType.ES5Array\n\tdraft_: Drafted<AnyObject, ES5ArrayState>\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ProxyType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map<any, boolean> | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ProxyType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyType,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyType.ProxyObject ||\n\t\tstate.type_ === ProxyType.ProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumerable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyType.ES5Object || state.type_ === ProxyType.ES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ProxyType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(resultEach, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path, isSet)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude<ImmerState, SetState>).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyType\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted<T, ProxyState> {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyType.ProxyArray : (ProxyType.ProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyType.ProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\n\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\treturn result.then(nextState => [nextState, patches!, inversePatches!])\n\t\t}\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtype,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === Archtype.Set ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase Archtype.Map:\n\t\t\treturn new Map(value)\n\t\tcase Archtype.Set:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tProxyType,\n\tgetCurrentScope,\n\tdie,\n\tmarkChanged,\n\tobjectTraps,\n\townKeys,\n\tgetOwnPropertyDescriptors\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Draft(isArray: boolean, base: any) {\n\t\tif (isArray) {\n\t\t\tconst draft = new Array(base.length)\n\t\t\tfor (let i = 0; i < base.length; i++)\n\t\t\t\tObject.defineProperty(draft, \"\" + i, proxyProperty(i, true))\n\t\t\treturn draft\n\t\t} else {\n\t\t\tconst descriptors = getOwnPropertyDescriptors(base)\n\t\t\tdelete descriptors[DRAFT_STATE as any]\n\t\t\tconst keys = ownKeys(descriptors)\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key: any = keys[i]\n\t\t\t\tdescriptors[key] = proxyProperty(\n\t\t\t\t\tkey,\n\t\t\t\t\tisArray || !!descriptors[key].enumerable\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_<T>(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted<T, ES5ObjectState | ES5ArrayState> {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft = createES5Draft(isArray, base)\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyType.ES5Array : (ProxyType.ES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\t// base is the object we are drafting\n\t\t\tbase_: base,\n\t\t\t// draft is the draft object itself, that traps all reads and reads from either the base (if unmodified) or copy (if modified)\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t): PropertyDescriptor {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn objectTraps.get(state, prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tobjectTraps.set(state, prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn desc\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted<any, ImmerState>[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyType.ES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyType.ES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyType.ES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyType.ES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChanged(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (!draft_.hasOwnProperty(i)) {\n\t\t\t\t\tassigned_[i] = true\n\t\t\t\t}\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = ownKeys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key: any = keys[i]\n\t\t\tif (key === DRAFT_STATE) continue\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\tconst baseIsDraft = !!base_[DRAFT_STATE as any]\n\t\treturn keys.length !== ownKeys(base_).length + (baseIsDraft ? 0 : 1) // + 1 to correct for DRAFT_STATE\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\t// last descriptor can be not a trap, if the array was extended\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// if we miss a property, it has been deleted, so array probobaly changed\n\t\tfor (let i = 0; i < draft_.length; i++) {\n\t\t\tif (!draft_.hasOwnProperty(i)) return true\n\t\t}\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\tfunction hasChanges_(state: ES5State) {\n\t\treturn state.type_ === ProxyType.ES5Object\n\t\t\t? hasObjectChanges(state)\n\t\t\t: hasArrayChanges(state)\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\twillFinalizeES5_,\n\t\thasChanges_\n\t})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft<T>(value: T): Draft<T> {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable<T>(value: T): Immutable<T> {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude<T, Nothing>`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\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 \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import type { Action, ActionCreator, StoreEnhancer } from 'redux'\r\nimport { compose } from 'redux'\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface DevToolsEnhancerOptions {\r\n /**\r\n * the instance name to be showed on the monitor page. Default value is `document.title`.\r\n * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\r\n */\r\n name?: string\r\n /**\r\n * action creators functions to be available in the Dispatcher.\r\n */\r\n actionCreators?: ActionCreator<any>[] | { [key: string]: ActionCreator<any> }\r\n /**\r\n * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\r\n * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\r\n * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\r\n *\r\n * @default 500 ms.\r\n */\r\n latency?: number\r\n /**\r\n * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\r\n *\r\n * @default 50\r\n */\r\n maxAge?: number\r\n /**\r\n * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\r\n * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\r\n * functions.\r\n */\r\n serialize?:\r\n | boolean\r\n | {\r\n /**\r\n * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\r\n * - `false` - will handle also circular references.\r\n * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\r\n * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\r\n * For each of them you can indicate if to include (by setting as `true`).\r\n * For `function` key you can also specify a custom function which handles serialization.\r\n * See [`jsan`](https://github.com/kolodny/jsan) for more details.\r\n */\r\n options?:\r\n | undefined\r\n | boolean\r\n | {\r\n date?: true\r\n regex?: true\r\n undefined?: true\r\n error?: true\r\n symbol?: true\r\n map?: true\r\n set?: true\r\n function?: true | ((fn: (...args: any[]) => any) => string)\r\n }\r\n /**\r\n * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\r\n * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\r\n * key. So you can deserialize it back while importing or persisting data.\r\n * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\r\n */\r\n replacer?: (key: string, value: unknown) => any\r\n /**\r\n * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\r\n * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\r\n * as an example on how to serialize special data types and get them back.\r\n */\r\n reviver?: (key: string, value: unknown) => any\r\n /**\r\n * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\r\n * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\r\n * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\r\n */\r\n immutable?: any\r\n /**\r\n * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\r\n */\r\n refs?: any\r\n }\r\n /**\r\n * function which takes `action` object and id number as arguments, and should return `action` object back.\r\n */\r\n actionSanitizer?: <A extends Action>(action: A, id: number) => A\r\n /**\r\n * function which takes `state` object and index as arguments, and should return `state` object back.\r\n */\r\n stateSanitizer?: <S>(state: S, index: number) => S\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsDenylist instead.\r\n */\r\n actionsBlacklist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsAllowlist instead.\r\n */\r\n actionsWhitelist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsDenylist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsAllowlist?: string | string[]\r\n /**\r\n * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\r\n * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\r\n */\r\n predicate?: <S, A extends Action>(state: S, action: A) => boolean\r\n /**\r\n * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\r\n * Available only for Redux enhancer, for others use `autoPause`.\r\n *\r\n * @default true\r\n */\r\n shouldRecordChanges?: boolean\r\n /**\r\n * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\r\n * If not specified, will commit when paused. Available only for Redux enhancer.\r\n *\r\n * @default \"@@PAUSED\"\"\r\n */\r\n pauseActionType?: string\r\n /**\r\n * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\r\n * Not available for Redux enhancer (as it already does it but storing the data to be sent).\r\n *\r\n * @default false\r\n */\r\n autoPause?: boolean\r\n /**\r\n * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\r\n * Available only for Redux enhancer.\r\n *\r\n * @default false\r\n */\r\n shouldStartLocked?: boolean\r\n /**\r\n * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\r\n *\r\n * @default true\r\n */\r\n shouldHotReload?: boolean\r\n /**\r\n * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\r\n *\r\n * @default false\r\n */\r\n shouldCatchErrors?: boolean\r\n /**\r\n * If you want to restrict the extension, specify the features you allow.\r\n * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\r\n * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\r\n * Otherwise, you'll get/set the data right from the monitor part.\r\n */\r\n features?: {\r\n /**\r\n * start/pause recording of dispatched actions\r\n */\r\n pause?: boolean\r\n /**\r\n * lock/unlock dispatching actions and side effects\r\n */\r\n lock?: boolean\r\n /**\r\n * persist states on page reloading\r\n */\r\n persist?: boolean\r\n /**\r\n * export history of actions in a file\r\n */\r\n export?: boolean | 'custom'\r\n /**\r\n * import history of actions from a file\r\n */\r\n import?: boolean | 'custom'\r\n /**\r\n * jump back and forth (time travelling)\r\n */\r\n jump?: boolean\r\n /**\r\n * skip (cancel) actions\r\n */\r\n skip?: boolean\r\n /**\r\n * drag and drop actions in the history list\r\n */\r\n reorder?: boolean\r\n /**\r\n * dispatch custom actions or action creators\r\n */\r\n dispatch?: boolean\r\n /**\r\n * generate tests for the selected actions\r\n */\r\n test?: boolean\r\n }\r\n /**\r\n * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\r\n * Defaults to false.\r\n */\r\n trace?: boolean | (<A extends Action>(action: A) => string)\r\n /**\r\n * The maximum number of stack trace entries to record per action. Defaults to 10.\r\n */\r\n traceLimit?: number\r\n}\r\n\r\ntype Compose = typeof compose\r\n\r\ninterface ComposeWithDevTools {\r\n (options: DevToolsEnhancerOptions): Compose\r\n <StoreExt>(...funcs: StoreEnhancer<StoreExt>[]): StoreEnhancer<StoreExt>\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const composeWithDevTools: ComposeWithDevTools =\r\n typeof window !== 'undefined' &&\r\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n : function () {\r\n if (arguments.length === 0) return undefined\r\n if (typeof arguments[0] === 'object') return compose\r\n return compose.apply(null, arguments as any as Function[])\r\n }\r\n\r\n/**\r\n * @public\r\n */\r\nexport const devToolsEnhancer: {\r\n (options: DevToolsEnhancerOptions): StoreEnhancer<any>\r\n} =\r\n typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n : function () {\r\n return function (noop) {\r\n return noop\r\n }\r\n }\r\n","/**\r\n * Returns true if the passed value is \"plain\" object, i.e. an object whose\r\n * prototype is the root `Object.prototype`. This includes objects created\r\n * using object literals, but not for instance for class instances.\r\n *\r\n * @param {any} value The value to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n *\r\n * @public\r\n */\r\nexport default function isPlainObject(value: unknown): value is object {\r\n if (typeof value !== 'object' || value === null) return false\r\n\r\n let proto = Object.getPrototypeOf(value)\r\n if (proto === null) return true\r\n\r\n let baseProto = proto\r\n while (Object.getPrototypeOf(baseProto) !== null) {\r\n baseProto = Object.getPrototypeOf(baseProto)\r\n }\r\n\r\n return proto === baseProto\r\n}\r\n","import type { Action } from 'redux'\r\nimport type {\r\n IsUnknownOrNonInferrable,\r\n IfMaybeUndefined,\r\n IfVoid,\r\n IsAny,\r\n} from './tsHelpers'\r\nimport { hasMatchFunction } from './tsHelpers'\r\nimport isPlainObject from './isPlainObject'\r\n\r\n/**\r\n * An action with a string type and an associated payload. This is the\r\n * type of action returned by `createAction()` action creators.\r\n *\r\n * @template P The type of the action's payload.\r\n * @template T the type used for the action type.\r\n * @template M The type of the action's meta (optional)\r\n * @template E The type of the action's error (optional)\r\n *\r\n * @public\r\n */\r\nexport type PayloadAction<\r\n P = void,\r\n T extends string = string,\r\n M = never,\r\n E = never\r\n> = {\r\n payload: P\r\n type: T\r\n} & ([M] extends [never]\r\n ? {}\r\n : {\r\n meta: M\r\n }) &\r\n ([E] extends [never]\r\n ? {}\r\n : {\r\n error: E\r\n })\r\n\r\n/**\r\n * A \"prepare\" method to be used as the second parameter of `createAction`.\r\n * Takes any number of arguments and returns a Flux Standard Action without\r\n * type (will be added later) that *must* contain a payload (might be undefined).\r\n *\r\n * @public\r\n */\r\nexport type PrepareAction<P> =\r\n | ((...args: any[]) => { payload: P })\r\n | ((...args: any[]) => { payload: P; meta: any })\r\n | ((...args: any[]) => { payload: P; error: any })\r\n | ((...args: any[]) => { payload: P; meta: any; error: any })\r\n\r\n/**\r\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\r\n *\r\n * @internal\r\n */\r\nexport type _ActionCreatorWithPreparedPayload<\r\n PA extends PrepareAction<any> | void,\r\n T extends string = string\r\n> = PA extends PrepareAction<infer P>\r\n ? ActionCreatorWithPreparedPayload<\r\n Parameters<PA>,\r\n P,\r\n T,\r\n ReturnType<PA> extends {\r\n error: infer E\r\n }\r\n ? E\r\n : never,\r\n ReturnType<PA> extends {\r\n meta: infer M\r\n }\r\n ? M\r\n : never\r\n >\r\n : void\r\n\r\n/**\r\n * Basic type for all action creators.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n */\r\nexport interface BaseActionCreator<P, T extends string, M = never, E = never> {\r\n type: T\r\n match: (action: Action<unknown>) => action is PayloadAction<P, T, M, E>\r\n}\r\n\r\n/**\r\n * An action creator that takes multiple arguments that are passed\r\n * to a `PrepareAction` method to create the final Action.\r\n * @typeParam Args arguments for the action creator function\r\n * @typeParam P `payload` type\r\n * @typeParam T `type` name\r\n * @typeParam E optional `error` type\r\n * @typeParam M optional `meta` type\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPreparedPayload<\r\n Args extends unknown[],\r\n P,\r\n T extends string = string,\r\n E = never,\r\n M = never\r\n> extends BaseActionCreator<P, T, M, E> {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with `Args` will return\r\n * an Action with a payload of type `P` and (depending on the `PrepareAction`\r\n * method used) a `meta`- and `error` property of types `M` and `E` respectively.\r\n */\r\n (...args: Args): PayloadAction<P, T, M, E>\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes an optional payload of type `P`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithOptionalPayload<P, T extends string = string>\r\n extends BaseActionCreator<P, T> {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`.\r\n * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\r\n */\r\n (payload?: P): PayloadAction<P, T>\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes no payload.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithoutPayload<T extends string = string>\r\n extends BaseActionCreator<undefined, T> {\r\n /**\r\n * Calling this {@link redux#ActionCreator} will\r\n * return a {@link PayloadAction} of type `T` with a payload of `undefined`\r\n */\r\n (noArgument: void): PayloadAction<undefined, T>\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that requires a payload of type P.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPayload<P, T extends string = string>\r\n extends BaseActionCreator<P, T> {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`\r\n */\r\n (payload: P): PayloadAction<P, T>\r\n}\r\n\r\n/**\r\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithNonInferrablePayload<\r\n T extends string = string\r\n> extends BaseActionCreator<unknown, T> {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload\r\n * of exactly the type of the argument.\r\n */\r\n <PT extends unknown>(payload: PT): PayloadAction<PT, T>\r\n}\r\n\r\n/**\r\n * An action creator that produces actions with a `payload` attribute.\r\n *\r\n * @typeParam P the `payload` type\r\n * @typeParam T the `type` of the resulting action\r\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\r\n *\r\n * @public\r\n */\r\nexport type PayloadActionCreator<\r\n P = void,\r\n T extends string = string,\r\n PA extends PrepareAction<P> | void = void\r\n> = IfPrepareActionMethodProvided<\r\n PA,\r\n _ActionCreatorWithPreparedPayload<PA, T>,\r\n // else\r\n IsAny<\r\n P,\r\n ActionCreatorWithPayload<any, T>,\r\n IsUnknownOrNonInferrable<\r\n P,\r\n ActionCreatorWithNonInferrablePayload<T>,\r\n // else\r\n IfVoid<\r\n P,\r\n ActionCreatorWithoutPayload<T>,\r\n // else\r\n IfMaybeUndefined<\r\n P,\r\n ActionCreatorWithOptionalPayload<P, T>,\r\n // else\r\n ActionCreatorWithPayload<P, T>\r\n >\r\n >\r\n >\r\n >\r\n>\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<P = void, T extends string = string>(\r\n type: T\r\n): PayloadActionCreator<P, T>\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<\r\n PA extends PrepareAction<any>,\r\n T extends string = string\r\n>(\r\n type: T,\r\n prepareAction: PA\r\n): PayloadActionCreator<ReturnType<PA>['payload'], T, PA>\r\n\r\nexport function createAction(type: string, prepareAction?: Function): any {\r\n function actionCreator(...args: any[]) {\r\n if (prepareAction) {\r\n let prepared = prepareAction(...args)\r\n if (!prepared) {\r\n throw new Error('prepareAction did not return an object')\r\n }\r\n\r\n return {\r\n type,\r\n payload: prepared.payload,\r\n ...('meta' in prepared && { meta: prepared.meta }),\r\n ...('error' in prepared && { error: prepared.error }),\r\n }\r\n }\r\n return { type, payload: args[0] }\r\n }\r\n\r\n actionCreator.toString = () => `${type}`\r\n\r\n actionCreator.type = type\r\n\r\n actionCreator.match = (action: Action<unknown>): action is PayloadAction =>\r\n action.type === type\r\n\r\n return actionCreator\r\n}\r\n\r\n/**\r\n * Returns true if value is a plain object with a `type` property.\r\n */\r\nexport function isAction(action: unknown): action is Action<unknown> {\r\n return isPlainObject(action) && 'type' in action\r\n}\r\n\r\n/**\r\n * Returns true if value is an RTK-like action creator, with a static type property and match method.\r\n */\r\nexport function isActionCreator(\r\n action: unknown\r\n): action is BaseActionCreator<unknown, string> & Function {\r\n return (\r\n typeof action === 'function' &&\r\n 'type' in action &&\r\n // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\r\n hasMatchFunction(action as any)\r\n )\r\n}\r\n\r\n/**\r\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\r\n */\r\nexport function isFSA(action: unknown): action is {\r\n type: string\r\n payload?: unknown\r\n error?: unknown\r\n meta?: unknown\r\n} {\r\n return (\r\n isAction(action) &&\r\n typeof action.type === 'string' &&\r\n Object.keys(action).every(isValidKey)\r\n )\r\n}\r\n\r\nfunction isValidKey(key: string) {\r\n return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1\r\n}\r\n\r\n/**\r\n * Returns the action type of the actions created by the passed\r\n * `createAction()`-generated action creator (arbitrary action creators\r\n * are not supported).\r\n *\r\n * @param action The action creator whose action type to get.\r\n * @returns The action type used by the action creator.\r\n *\r\n * @public\r\n */\r\nexport function getType<T extends string>(\r\n actionCreator: PayloadActionCreator<any, T>\r\n): T {\r\n return `${actionCreator}` as T\r\n}\r\n\r\n// helper types for more readable typings\r\n\r\ntype IfPrepareActionMethodProvided<\r\n PA extends PrepareAction<any> | void,\r\n True,\r\n False\r\n> = PA extends (...args: any[]) => any ? True : False\r\n","import createNextState, { isDraftable } from 'immer'\r\nimport type { Middleware, StoreEnhancer } from 'redux'\r\n\r\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\r\n let elapsed = 0\r\n return {\r\n measureTime<T>(fn: () => T): T {\r\n const started = Date.now()\r\n try {\r\n return fn()\r\n } finally {\r\n const finished = Date.now()\r\n elapsed += finished - started\r\n }\r\n },\r\n warnIfExceeded() {\r\n if (elapsed > maxDelay) {\r\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \r\nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\r\nIt is disabled in production builds, so you don't need to worry about that.`)\r\n }\r\n },\r\n }\r\n}\r\n\r\nexport function delay(ms: number) {\r\n return new Promise((resolve) => setTimeout(resolve, ms))\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class MiddlewareArray<\r\n Middlewares extends Middleware<any, any>[]\r\n> extends Array<Middlewares[number]> {\r\n constructor(...items: Middlewares)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, MiddlewareArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return MiddlewareArray as any\r\n }\r\n\r\n concat<AdditionalMiddlewares extends ReadonlyArray<Middleware<any, any>>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n\r\n concat<AdditionalMiddlewares extends ReadonlyArray<Middleware<any, any>>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend<AdditionalMiddlewares extends ReadonlyArray<Middleware<any, any>>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend<AdditionalMiddlewares extends ReadonlyArray<Middleware<any, any>>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new MiddlewareArray(...arr[0].concat(this))\r\n }\r\n return new MiddlewareArray(...arr.concat(this))\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class EnhancerArray<\r\n Enhancers extends StoreEnhancer<any, any>[]\r\n> extends Array<Enhancers[number]> {\r\n constructor(...items: Enhancers)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, EnhancerArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return EnhancerArray as any\r\n }\r\n\r\n concat<AdditionalEnhancers extends ReadonlyArray<StoreEnhancer<any, any>>>(\r\n items: AdditionalEnhancers\r\n ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n\r\n concat<AdditionalEnhancers extends ReadonlyArray<StoreEnhancer<any, any>>>(\r\n ...items: AdditionalEnhancers\r\n ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend<AdditionalEnhancers extends ReadonlyArray<StoreEnhancer<any, any>>>(\r\n items: AdditionalEnhancers\r\n ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n prepend<AdditionalEnhancers extends ReadonlyArray<StoreEnhancer<any, any>>>(\r\n ...items: AdditionalEnhancers\r\n ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new EnhancerArray(...arr[0].concat(this))\r\n }\r\n return new EnhancerArray(...arr.concat(this))\r\n }\r\n}\r\n\r\nexport function freezeDraftable<T>(val: T) {\r\n return isDraftable(val) ? createNextState(val, () => {}) : val\r\n}\r\n","import type { Middleware, AnyAction } from 'redux'\r\nimport type { ThunkMiddleware } from 'redux-thunk'\r\nimport thunkMiddleware from 'redux-thunk'\r\nimport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware'\r\nimport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware'\r\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware'\r\n/* PROD_START_REMOVE_UMD */\r\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware'\r\n/* PROD_STOP_REMOVE_UMD */\r\n\r\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware'\r\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware'\r\nimport type { ExcludeFromTuple } from './tsHelpers'\r\nimport { MiddlewareArray } from './utils'\r\n\r\nfunction isBoolean(x: any): x is boolean {\r\n return typeof x === 'boolean'\r\n}\r\n\r\ninterface ThunkOptions<E = any> {\r\n extraArgument: E\r\n}\r\n\r\ninterface GetDefaultMiddlewareOptions {\r\n thunk?: boolean | ThunkOptions\r\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions\r\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions\r\n actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions\r\n}\r\n\r\nexport type ThunkMiddlewareFor<\r\n S,\r\n O extends GetDefaultMiddlewareOptions = {}\r\n> = O extends {\r\n thunk: false\r\n}\r\n ? never\r\n : O extends { thunk: { extraArgument: infer E } }\r\n ? ThunkMiddleware<S, AnyAction, E>\r\n : ThunkMiddleware<S, AnyAction>\r\n\r\nexport type CurriedGetDefaultMiddleware<S = any> = <\r\n O extends Partial<GetDefaultMiddlewareOptions> = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n actionCreatorCheck: true\r\n }\r\n>(\r\n options?: O\r\n) => MiddlewareArray<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>>\r\n\r\nexport function curryGetDefaultMiddleware<\r\n S = any\r\n>(): CurriedGetDefaultMiddleware<S> {\r\n return function curriedGetDefaultMiddleware(options) {\r\n return getDefaultMiddleware(options)\r\n }\r\n}\r\n\r\n/**\r\n * Returns any array containing the default middleware installed by\r\n * `configureStore()`. Useful if you want to configure your store with a custom\r\n * `middleware` array but still keep the default set.\r\n *\r\n * @return The default middleware used by `configureStore()`.\r\n *\r\n * @public\r\n *\r\n * @deprecated Prefer to use the callback notation for the `middleware` option in `configureStore`\r\n * to access a pre-typed `getDefaultMiddleware` instead.\r\n */\r\nexport function getDefaultMiddleware<\r\n S = any,\r\n O extends Partial<GetDefaultMiddlewareOptions> = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n actionCreatorCheck: true\r\n }\r\n>(\r\n options: O = {} as O\r\n): MiddlewareArray<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>> {\r\n const {\r\n thunk = true,\r\n immutableCheck = true,\r\n serializableCheck = true,\r\n actionCreatorCheck = true,\r\n } = options\r\n\r\n let middlewareArray = new MiddlewareArray<Middleware[]>()\r\n\r\n if (thunk) {\r\n if (isBoolean(thunk)) {\r\n middlewareArray.push(thunkMiddleware)\r\n } else {\r\n middlewareArray.push(\r\n thunkMiddleware.withExtraArgument(thunk.extraArgument)\r\n )\r\n }\r\n }\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (immutableCheck) {\r\n /* PROD_START_REMOVE_UMD */\r\n let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(immutableCheck)) {\r\n immutableOptions = immutableCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createImmutableStateInvariantMiddleware(immutableOptions)\r\n )\r\n /* PROD_STOP_REMOVE_UMD */\r\n }\r\n\r\n if (serializableCheck) {\r\n let serializableOptions: SerializableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(serializableCheck)) {\r\n serializableOptions = serializableCheck\r\n }\r\n\r\n middlewareArray.push(\r\n createSerializableStateInvariantMiddleware(serializableOptions)\r\n )\r\n }\r\n if (actionCreatorCheck) {\r\n let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(actionCreatorCheck)) {\r\n actionCreatorOptions = actionCreatorCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createActionCreatorInvariantMiddleware(actionCreatorOptions)\r\n )\r\n }\r\n }\r\n\r\n return middlewareArray as any\r\n}\r\n","import type { Action, AnyAction } from 'redux'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n} from './createReducer'\r\nimport type { TypeGuard } from './tsHelpers'\r\n\r\nexport interface TypedActionCreator<Type extends string> {\r\n (...args: any[]): Action<Type>\r\n type: Type\r\n}\r\n\r\n/**\r\n * A builder for an action <-> reducer map.\r\n *\r\n * @public\r\n */\r\nexport interface ActionReducerMapBuilder<State> {\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase<ActionCreator extends TypedActionCreator<string>>(\r\n actionCreator: ActionCreator,\r\n reducer: CaseReducer<State, ReturnType<ActionCreator>>\r\n ): ActionReducerMapBuilder<State>\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase<Type extends string, A extends Action<Type>>(\r\n type: Type,\r\n reducer: CaseReducer<State, A>\r\n ): ActionReducerMapBuilder<State>\r\n\r\n /**\r\n * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\r\n * @remarks\r\n * If multiple matcher reducers match, all of them will be executed in the order\r\n * they were defined in - even if a case reducer already matched.\r\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\r\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\r\n * function\r\n * @param reducer - The actual case reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AsyncThunk,\r\n AnyAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\ntype GenericAsyncThunk = AsyncThunk<unknown, unknown, any>;\r\n\r\ntype PendingAction = ReturnType<GenericAsyncThunk[\"pending\"]>;\r\ntype RejectedAction = ReturnType<GenericAsyncThunk[\"rejected\"]>;\r\ntype FulfilledAction = ReturnType<GenericAsyncThunk[\"fulfilled\"]>;\r\n\r\nconst initialState: Record<string, string> = {};\r\nconst resetAction = createAction(\"reset-tracked-loading-state\");\r\n\r\nfunction isPendingAction(action: AnyAction): action is PendingAction {\r\n return action.type.endsWith(\"/pending\");\r\n}\r\n\r\nconst reducer = createReducer(initialState, (builder) => {\r\n builder\r\n .addCase(resetAction, () => initialState)\r\n // matcher can be defined outside as a type predicate function\r\n .addMatcher(isPendingAction, (state, action) => {\r\n state[action.meta.requestId] = \"pending\";\r\n })\r\n .addMatcher(\r\n // matcher can be defined inline as a type predicate function\r\n (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"rejected\";\r\n }\r\n )\r\n // matcher can just return boolean and the matcher can receive a generic argument\r\n .addMatcher<FulfilledAction>(\r\n (action) => action.type.endsWith(\"/fulfilled\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"fulfilled\";\r\n }\r\n );\r\n});\r\n```\r\n */\r\n addMatcher<A>(\r\n matcher: TypeGuard<A> | ((action: any) => boolean),\r\n reducer: CaseReducer<State, A extends AnyAction ? A : A & AnyAction>\r\n ): Omit<ActionReducerMapBuilder<State>, 'addCase'>\r\n\r\n /**\r\n * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n * @param reducer - The fallback \"default case\" reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport { createReducer } from '@reduxjs/toolkit'\r\nconst initialState = { otherActions: 0 }\r\nconst reducer = createReducer(initialState, builder => {\r\n builder\r\n // .addCase(...)\r\n // .addMatcher(...)\r\n .addDefaultCase((state, action) => {\r\n state.otherActions++\r\n })\r\n})\r\n```\r\n */\r\n addDefaultCase(reducer: CaseReducer<State, AnyAction>): {}\r\n}\r\n\r\nexport function executeReducerBuilderCallback<S>(\r\n builderCallback: (builder: ActionReducerMapBuilder<S>) => void\r\n): [\r\n CaseReducers<S, any>,\r\n ActionMatcherDescriptionCollection<S>,\r\n CaseReducer<S, AnyAction> | undefined\r\n] {\r\n const actionsMap: CaseReducers<S, any> = {}\r\n const actionMatchers: ActionMatcherDescriptionCollection<S> = []\r\n let defaultCaseReducer: CaseReducer<S, AnyAction> | undefined\r\n const builder = {\r\n addCase(\r\n typeOrActionCreator: string | TypedActionCreator<any>,\r\n reducer: CaseReducer<S>\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n /*\r\n to keep the definition by the user in line with actual behavior,\r\n we enforce `addCase` to always be called before calling `addMatcher`\r\n as matching cases take precedence over matchers\r\n */\r\n if (actionMatchers.length > 0) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addMatcher`'\r\n )\r\n }\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n const type =\r\n typeof typeOrActionCreator === 'string'\r\n ? typeOrActionCreator\r\n : typeOrActionCreator.type\r\n if (!type) {\r\n throw new Error(\r\n '`builder.addCase` cannot be called with an empty action type'\r\n )\r\n }\r\n if (type in actionsMap) {\r\n throw new Error(\r\n '`builder.addCase` cannot be called with two reducers for the same action type'\r\n )\r\n }\r\n actionsMap[type] = reducer\r\n return builder\r\n },\r\n addMatcher<A>(\r\n matcher: TypeGuard<A>,\r\n reducer: CaseReducer<S, A extends AnyAction ? A : A & AnyAction>\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n actionMatchers.push({ matcher, reducer })\r\n return builder\r\n },\r\n addDefaultCase(reducer: CaseReducer<S, AnyAction>) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error('`builder.addDefaultCase` can only be called once')\r\n }\r\n }\r\n defaultCaseReducer = reducer\r\n return builder\r\n },\r\n }\r\n builderCallback(builder)\r\n return [actionsMap, actionMatchers, defaultCaseReducer]\r\n}\r\n","import type { AnyAction, Reducer } from 'redux'\r\nimport { createNextState } from '.'\r\nimport type {\r\n ActionCreatorWithoutPayload,\r\n PayloadAction,\r\n PayloadActionCreator,\r\n PrepareAction,\r\n _ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ReducerWithInitialState,\r\n} from './createReducer'\r\nimport { createReducer, NotFunction } from './createReducer'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * An action creator attached to a slice.\r\n *\r\n * @deprecated please use PayloadActionCreator directly\r\n *\r\n * @public\r\n */\r\nexport type SliceActionCreator<P> = PayloadActionCreator<P>\r\n\r\n/**\r\n * The return value of `createSlice`\r\n *\r\n * @public\r\n */\r\nexport interface Slice<\r\n State = any,\r\n CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice name.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The slice's reducer.\r\n */\r\n reducer: Reducer<State>\r\n\r\n /**\r\n * Action creators for the types of actions that are handled by the slice\r\n * reducer.\r\n */\r\n actions: CaseReducerActions<CaseReducers, Name>\r\n\r\n /**\r\n * The individual case reducer functions that were passed in the `reducers` parameter.\r\n * This enables reuse and testing if they were defined inline when calling `createSlice`.\r\n */\r\n caseReducers: SliceDefinedCaseReducers<CaseReducers>\r\n\r\n /**\r\n * Provides access to the initial state value given to the slice.\r\n * If a lazy state initializer was provided, it will be called and a fresh value returned.\r\n */\r\n getInitialState: () => State\r\n}\r\n\r\n/**\r\n * Options for `createSlice()`.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSliceOptions<\r\n State = any,\r\n CR extends SliceCaseReducers<State> = SliceCaseReducers<State>,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice's name. Used to namespace the generated action types.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n */\r\n initialState: State | (() => State)\r\n\r\n /**\r\n * A mapping from action types to action-type-specific *case reducer*\r\n * functions. For every action type, a matching action creator will be\r\n * generated using `createAction()`.\r\n */\r\n reducers: ValidateSliceCaseReducers<State, CR>\r\n\r\n /**\r\n * A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * \r\n * Alternatively, a mapping from action types to action-type-specific *case reducer*\r\n * functions. These reducers should have existing action types used\r\n * as the keys, and action creators will _not_ be generated.\r\n * \r\n * @example\r\n```ts\r\nimport { createAction, createSlice, Action, AnyAction } from '@reduxjs/toolkit'\r\nconst incrementBy = createAction<number>('incrementBy')\r\nconst decrement = createAction('decrement')\r\n\r\ninterface RejectedAction extends Action {\r\n error: Error\r\n}\r\n\r\nfunction isRejectedAction(action: AnyAction): action is RejectedAction {\r\n return action.type.endsWith('rejected')\r\n}\r\n\r\ncreateSlice({\r\n name: 'counter',\r\n initialState: 0,\r\n reducers: {},\r\n extraReducers: builder => {\r\n builder\r\n .addCase(incrementBy, (state, action) => {\r\n // action is inferred correctly here if using TS\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {})\r\n // You can match a range of action types\r\n .addMatcher(\r\n isRejectedAction,\r\n // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\r\n (state, action) => {}\r\n )\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {})\r\n }\r\n})\r\n```\r\n */\r\n extraReducers?:\r\n | CaseReducers<NoInfer<State>, any>\r\n | ((builder: ActionReducerMapBuilder<NoInfer<State>>) => void)\r\n}\r\n\r\n/**\r\n * A CaseReducer with a `prepare` method.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerWithPrepare<State, Action extends PayloadAction> = {\r\n reducer: CaseReducer<State, Action>\r\n prepare: PrepareAction<Action['payload']>\r\n}\r\n\r\n/**\r\n * The type describing a slice's `reducers` option.\r\n *\r\n * @public\r\n */\r\nexport type SliceCaseReducers<State> = {\r\n [K: string]:\r\n | CaseReducer<State, PayloadAction<any>>\r\n | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>\r\n}\r\n\r\ntype SliceActionType<\r\n SliceName extends string,\r\n ActionName extends keyof any\r\n> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string\r\n\r\n/**\r\n * Derives the slice's `actions` property from the `reducers` options\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerActions<\r\n CaseReducers extends SliceCaseReducers<any>,\r\n SliceName extends string\r\n> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends { prepare: any }\r\n ? ActionCreatorForCaseReducerWithPrepare<\r\n CaseReducers[Type],\r\n SliceActionType<SliceName, Type>\r\n >\r\n : ActionCreatorForCaseReducer<\r\n CaseReducers[Type],\r\n SliceActionType<SliceName, Type>\r\n >\r\n}\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducerWithPrepare<\r\n CR extends { prepare: any },\r\n Type extends string\r\n> = _ActionCreatorWithPreparedPayload<CR['prepare'], Type>\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducer<CR, Type extends string> = CR extends (\r\n state: any,\r\n action: infer Action\r\n) => any\r\n ? Action extends { payload: infer P }\r\n ? PayloadActionCreator<P, Type>\r\n : ActionCreatorWithoutPayload<Type>\r\n : ActionCreatorWithoutPayload<Type>\r\n\r\n/**\r\n * Extracts the CaseReducers out of a `reducers` object, even if they are\r\n * tested into a `CaseReducerWithPrepare`.\r\n *\r\n * @internal\r\n */\r\ntype SliceDefinedCaseReducers<CaseReducers extends SliceCaseReducers<any>> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends {\r\n reducer: infer Reducer\r\n }\r\n ? Reducer\r\n : CaseReducers[Type]\r\n}\r\n\r\n/**\r\n * Used on a SliceCaseReducers object.\r\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\r\n * the `reducer` and the `prepare` function use the same type of `payload`.\r\n *\r\n * Might do additional such checks in the future.\r\n *\r\n * This type is only ever useful if you want to write your own wrapper around\r\n * `createSlice`. Please don't use it otherwise!\r\n *\r\n * @public\r\n */\r\nexport type ValidateSliceCaseReducers<\r\n S,\r\n ACR extends SliceCaseReducers<S>\r\n> = ACR &\r\n {\r\n [T in keyof ACR]: ACR[T] extends {\r\n reducer(s: S, action?: infer A): any\r\n }\r\n ? {\r\n prepare(...a: never[]): Omit<A, 'type'>\r\n }\r\n : {}\r\n }\r\n\r\nfunction getType(slice: string, actionKey: string): string {\r\n return `${slice}/${actionKey}`\r\n}\r\n\r\n/**\r\n * A function that accepts an initial state, an object full of reducer\r\n * functions, and a \"slice name\", and automatically generates\r\n * action creators and action types that correspond to the\r\n * reducers and state.\r\n *\r\n * The `reducer` argument is passed to `createReducer()`.\r\n *\r\n * @public\r\n */\r\nexport function createSlice<\r\n State,\r\n CaseReducers extends SliceCaseReducers<State>,\r\n Name extends string = string\r\n>(\r\n options: CreateSliceOptions<State, CaseReducers, Name>\r\n): Slice<State, CaseReducers, Name> {\r\n const { name } = options\r\n if (!name) {\r\n throw new Error('`name` is a required option for createSlice')\r\n }\r\n\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n if (options.initialState === undefined) {\r\n console.error(\r\n 'You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`'\r\n )\r\n }\r\n }\r\n\r\n const initialState =\r\n typeof options.initialState == 'function'\r\n ? options.initialState\r\n : freezeDraftable(options.initialState)\r\n\r\n const reducers = options.reducers || {}\r\n\r\n const reducerNames = Object.keys(reducers)\r\n\r\n const sliceCaseReducersByName: Record<string, CaseReducer> = {}\r\n const sliceCaseReducersByType: Record<string, CaseReducer> = {}\r\n const actionCreators: Record<string, Function> = {}\r\n\r\n reducerNames.forEach((reducerName) => {\r\n const maybeReducerWithPrepare = reducers[reducerName]\r\n const type = getType(name, reducerName)\r\n\r\n let caseReducer: CaseReducer<State, any>\r\n let prepareCallback: PrepareAction<any> | undefined\r\n\r\n if ('reducer' in maybeReducerWithPrepare) {\r\n caseReducer = maybeReducerWithPrepare.reducer\r\n prepareCallback = maybeReducerWithPrepare.prepare\r\n } else {\r\n caseReducer = maybeReducerWithPrepare\r\n }\r\n\r\n sliceCaseReducersByName[reducerName] = caseReducer\r\n sliceCaseReducersByType[type] = caseReducer\r\n actionCreators[reducerName] = prepareCallback\r\n ? createAction(type, prepareCallback)\r\n : createAction(type)\r\n })\r\n\r\n function buildReducer() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof options.extraReducers === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createSlice.extraReducers` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\"\r\n )\r\n }\r\n }\r\n }\r\n const [\r\n extraReducers = {},\r\n actionMatchers = [],\r\n defaultCaseReducer = undefined,\r\n ] =\r\n typeof options.extraReducers === 'function'\r\n ? executeReducerBuilderCallback(options.extraReducers)\r\n : [options.extraReducers]\r\n\r\n const finalCaseReducers = { ...extraReducers, ...sliceCaseReducersByType }\r\n\r\n return createReducer(initialState, (builder) => {\r\n for (let key in finalCaseReducers) {\r\n builder.addCase(key, finalCaseReducers[key] as CaseReducer<any>)\r\n }\r\n for (let m of actionMatchers) {\r\n builder.addMatcher(m.matcher, m.reducer)\r\n }\r\n if (defaultCaseReducer) {\r\n builder.addDefaultCase(defaultCaseReducer)\r\n }\r\n })\r\n }\r\n\r\n let _reducer: ReducerWithInitialState<State>\r\n\r\n return {\r\n name,\r\n reducer(state, action) {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer(state, action)\r\n },\r\n actions: actionCreators as any,\r\n caseReducers: sliceCaseReducersByName as any,\r\n getInitialState() {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer.getInitialState()\r\n },\r\n }\r\n}\r\n","import type { Draft } from 'immer'\r\nimport createNextState, { isDraft, isDraftable } from 'immer'\r\nimport type { AnyAction, Action, Reducer } from 'redux'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\n/**\r\n * Defines a mapping from action types to corresponding action object shapes.\r\n *\r\n * @deprecated This should not be used manually - it is only used for internal\r\n * inference purposes and should not have any further value.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type Actions<T extends keyof any = string> = Record<T, Action>\r\n\r\n/**\r\n * @deprecated use `TypeGuard` instead\r\n */\r\nexport interface ActionMatcher<A extends AnyAction> {\r\n (action: AnyAction): action is A\r\n}\r\n\r\nexport type ActionMatcherDescription<S, A extends AnyAction> = {\r\n matcher: ActionMatcher<A>\r\n reducer: CaseReducer<S, NoInfer<A>>\r\n}\r\n\r\nexport type ReadonlyActionMatcherDescriptionCollection<S> = ReadonlyArray<\r\n ActionMatcherDescription<S, any>\r\n>\r\n\r\nexport type ActionMatcherDescriptionCollection<S> = Array<\r\n ActionMatcherDescription<S, any>\r\n>\r\n\r\n/**\r\n * A *case reducer* is a reducer function for a specific action type. Case\r\n * reducers can be composed to full reducers using `createReducer()`.\r\n *\r\n * Unlike a normal Redux reducer, a case reducer is never called with an\r\n * `undefined` state to determine the initial state. Instead, the initial\r\n * state is explicitly specified as an argument to `createReducer()`.\r\n *\r\n * In addition, a case reducer can choose to mutate the passed-in `state`\r\n * value directly instead of returning a new state. This does not actually\r\n * cause the store state to be mutated directly; instead, thanks to\r\n * [immer](https://github.com/mweststrate/immer), the mutations are\r\n * translated to copy operations that result in a new state.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducer<S = any, A extends Action = AnyAction> = (\r\n state: Draft<S>,\r\n action: A\r\n) => NoInfer<S> | void | Draft<NoInfer<S>>\r\n\r\n/**\r\n * A mapping from action types to case reducers for `createReducer()`.\r\n *\r\n * @deprecated This should not be used manually - it is only used\r\n * for internal inference purposes and using it manually\r\n * would lead to type erasure.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type CaseReducers<S, AS extends Actions> = {\r\n [T in keyof AS]: AS[T] extends Action ? CaseReducer<S, AS[T]> : void\r\n}\r\n\r\nexport type NotFunction<T> = T extends Function ? never : T\r\n\r\nfunction isStateFunction<S>(x: unknown): x is () => S {\r\n return typeof x === 'function'\r\n}\r\n\r\nexport type ReducerWithInitialState<S extends NotFunction<any>> = Reducer<S> & {\r\n getInitialState: () => S\r\n}\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * @remarks\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n *\r\n * @overloadSummary\r\n * This overload accepts a callback function that receives a `builder` object as its argument.\r\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\r\n * called to define what actions this reducer will handle.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AnyAction,\r\n PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\nconst increment = createAction<number>(\"increment\");\r\nconst decrement = createAction<number>(\"decrement\");\r\n\r\nfunction isActionWithNumberPayload(\r\n action: AnyAction\r\n): action is PayloadAction<number> {\r\n return typeof action.payload === \"number\";\r\n}\r\n\r\nconst reducer = createReducer(\r\n {\r\n counter: 0,\r\n sumOfNumberPayloads: 0,\r\n unhandledActions: 0,\r\n },\r\n (builder) => {\r\n builder\r\n .addCase(increment, (state, action) => {\r\n // action is inferred correctly here\r\n state.counter += action.payload;\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {\r\n state.counter -= action.payload;\r\n })\r\n // You can apply a \"matcher function\" to incoming actions\r\n .addMatcher(isActionWithNumberPayload, (state, action) => {})\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {});\r\n }\r\n);\r\n```\r\n * @public\r\n */\r\nexport function createReducer<S extends NotFunction<any>>(\r\n initialState: S | (() => S),\r\n builderCallback: (builder: ActionReducerMapBuilder<S>) => void\r\n): ReducerWithInitialState<S>\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n * \r\n * @overloadSummary\r\n * This overload accepts an object where the keys are string action types, and the values\r\n * are case reducer functions to handle those action types.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param actionsMap - An object mapping from action types to _case reducers_, each of which handles one specific action type.\r\n * @param actionMatchers - An array of matcher definitions in the form `{matcher, reducer}`.\r\n * All matching reducers will be executed in order, independently if a case reducer matched or not.\r\n * @param defaultCaseReducer - A \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n *\r\n * @example\r\n```js\r\nconst counterReducer = createReducer(0, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n\r\n// Alternately, use a \"lazy initializer\" to provide the initial state\r\n// (works with either form of createReducer)\r\nconst initialState = () => 0\r\nconst counterReducer = createReducer(initialState, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n```\r\n \r\n * Action creators that were generated using [`createAction`](./createAction) may be used directly as the keys here, using computed property syntax:\r\n\r\n```js\r\nconst increment = createAction('increment')\r\nconst decrement = createAction('decrement')\r\n\r\nconst counterReducer = createReducer(0, {\r\n [increment]: (state, action) => state + action.payload,\r\n [decrement.type]: (state, action) => state - action.payload\r\n})\r\n```\r\n * @public\r\n */\r\nexport function createReducer<\r\n S extends NotFunction<any>,\r\n CR extends CaseReducers<S, any> = CaseReducers<S, any>\r\n>(\r\n initialState: S | (() => S),\r\n actionsMap: CR,\r\n actionMatchers?: ActionMatcherDescriptionCollection<S>,\r\n defaultCaseReducer?: CaseReducer<S>\r\n): ReducerWithInitialState<S>\r\n\r\nexport function createReducer<S extends NotFunction<any>>(\r\n initialState: S | (() => S),\r\n mapOrBuilderCallback:\r\n | CaseReducers<S, any>\r\n | ((builder: ActionReducerMapBuilder<S>) => void),\r\n actionMatchers: ReadonlyActionMatcherDescriptionCollection<S> = [],\r\n defaultCaseReducer?: CaseReducer<S>\r\n): ReducerWithInitialState<S> {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof mapOrBuilderCallback === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createReducer` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\"\r\n )\r\n }\r\n }\r\n }\r\n\r\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] =\r\n typeof mapOrBuilderCallback === 'function'\r\n ? executeReducerBuilderCallback(mapOrBuilderCallback)\r\n : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer]\r\n\r\n // Ensure the initial state gets frozen either way (if draftable)\r\n let getInitialState: () => S\r\n if (isStateFunction(initialState)) {\r\n getInitialState = () => freezeDraftable(initialState())\r\n } else {\r\n const frozenInitialState = freezeDraftable(initialState)\r\n getInitialState = () => frozenInitialState\r\n }\r\n\r\n function reducer(state = getInitialState(), action: any): S {\r\n let caseReducers = [\r\n actionsMap[action.type],\r\n ...finalActionMatchers\r\n .filter(({ matcher }) => matcher(action))\r\n .map(({ reducer }) => reducer),\r\n ]\r\n if (caseReducers.filter((cr) => !!cr).length === 0) {\r\n caseReducers = [finalDefaultCaseReducer]\r\n }\r\n\r\n return caseReducers.reduce((previousState, caseReducer): S => {\r\n if (caseReducer) {\r\n if (isDraft(previousState)) {\r\n // If it's already a draft, we must already be inside a `createNextState` call,\r\n // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\r\n // inside an existing draft. It's safe to just pass the draft to the mutator.\r\n const draft = previousState as Draft<S> // We can assume this is already a draft\r\n const result = caseReducer(draft, action)\r\n\r\n if (result === undefined) {\r\n return previousState\r\n }\r\n\r\n return result as S\r\n } else if (!isDraftable(previousState)) {\r\n // If state is not draftable (ex: a primitive, such as 0), we want to directly\r\n // return the caseReducer func and not wrap it with produce.\r\n const result = caseReducer(previousState as any, action)\r\n\r\n if (result === undefined) {\r\n if (previousState === null) {\r\n return previousState\r\n }\r\n throw Error(\r\n 'A case reducer on a non-draftable value must not return undefined'\r\n )\r\n }\r\n\r\n return result as S\r\n } else {\r\n // @ts-ignore createNextState() produces an Immutable<Draft<S>> rather\r\n // than an Immutable<S>, and TypeScript cannot find out how to reconcile\r\n // these two types.\r\n return createNextState(previousState, (draft: Draft<S>) => {\r\n return caseReducer(draft, action)\r\n })\r\n }\r\n }\r\n\r\n return previousState\r\n }, state)\r\n }\r\n\r\n reducer.getInitialState = getInitialState\r\n\r\n return reducer as ReducerWithInitialState<S>\r\n}\r\n","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\r\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\r\n// optimize the gzip compression for this alphabet.\r\nlet urlAlphabet =\r\n 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW'\r\n\r\n/**\r\n *\r\n * @public\r\n */\r\nexport let nanoid = (size = 21) => {\r\n let id = ''\r\n // A compact alternative for `for (var i = 0; i < step; i++)`.\r\n let i = size\r\n while (i--) {\r\n // `| 0` is more compact and faster than `Math.floor()`.\r\n id += urlAlphabet[(Math.random() * 64) | 0]\r\n }\r\n return id\r\n}\r\n","import type { Dispatch, AnyAction } from 'redux'\r\nimport type {\r\n PayloadAction,\r\n ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport type { FallbackIfUnknown, Id, IsAny, IsUnknown } from './tsHelpers'\r\nimport { nanoid } from './nanoid'\r\n\r\n// @ts-ignore we need the import of these types due to a bundling issue.\r\ntype _Keep = PayloadAction | ActionCreatorWithPreparedPayload<any, unknown>\r\n\r\nexport type BaseThunkAPI<\r\n S,\r\n E,\r\n D extends Dispatch = Dispatch,\r\n RejectedValue = unknown,\r\n RejectedMeta = unknown,\r\n FulfilledMeta = unknown\r\n> = {\r\n dispatch: D\r\n getState: () => S\r\n extra: E\r\n requestId: string\r\n signal: AbortSignal\r\n abort: (reason?: string) => void\r\n rejectWithValue: IsUnknown<\r\n RejectedMeta,\r\n (value: RejectedValue) => RejectWithValue<RejectedValue, RejectedMeta>,\r\n (\r\n value: RejectedValue,\r\n meta: RejectedMeta\r\n ) => RejectWithValue<RejectedValue, RejectedMeta>\r\n >\r\n fulfillWithValue: IsUnknown<\r\n FulfilledMeta,\r\n <FulfilledValue>(value: FulfilledValue) => FulfilledValue,\r\n <FulfilledValue>(\r\n value: FulfilledValue,\r\n meta: FulfilledMeta\r\n ) => FulfillWithMeta<FulfilledValue, FulfilledMeta>\r\n >\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface SerializedError {\r\n name?: string\r\n message?: string\r\n stack?: string\r\n code?: string\r\n}\r\n\r\nconst commonProperties: Array<keyof SerializedError> = [\r\n 'name',\r\n 'message',\r\n 'stack',\r\n 'code',\r\n]\r\n\r\nclass RejectWithValue<Payload, RejectedMeta> {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'RejectWithValue'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: RejectedMeta\r\n ) {}\r\n}\r\n\r\nclass FulfillWithMeta<Payload, FulfilledMeta> {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'FulfillWithMeta'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: FulfilledMeta\r\n ) {}\r\n}\r\n\r\n/**\r\n * Serializes an error into a plain object.\r\n * Reworked from https://github.com/sindresorhus/serialize-error\r\n *\r\n * @public\r\n */\r\nexport const miniSerializeError = (value: any): SerializedError => {\r\n if (typeof value === 'object' && value !== null) {\r\n const simpleError: SerializedError = {}\r\n for (const property of commonProperties) {\r\n if (typeof value[property] === 'string') {\r\n simpleError[property] = value[property]\r\n }\r\n }\r\n\r\n return simpleError\r\n }\r\n\r\n return { message: String(value) }\r\n}\r\n\r\ntype AsyncThunkConfig = {\r\n state?: unknown\r\n dispatch?: Dispatch\r\n extra?: unknown\r\n rejectValue?: unknown\r\n serializedErrorType?: unknown\r\n pendingMeta?: unknown\r\n fulfilledMeta?: unknown\r\n rejectedMeta?: unknown\r\n}\r\n\r\ntype GetState<ThunkApiConfig> = ThunkApiConfig extends {\r\n state: infer State\r\n}\r\n ? State\r\n : unknown\r\ntype GetExtra<ThunkApiConfig> = ThunkApiConfig extends { extra: infer Extra }\r\n ? Extra\r\n : unknown\r\ntype GetDispatch<ThunkApiConfig> = ThunkApiConfig extends {\r\n dispatch: infer Dispatch\r\n}\r\n ? FallbackIfUnknown<\r\n Dispatch,\r\n ThunkDispatch<\r\n GetState<ThunkApiConfig>,\r\n GetExtra<ThunkApiConfig>,\r\n AnyAction\r\n >\r\n >\r\n : ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, AnyAction>\r\n\r\nexport type GetThunkAPI<ThunkApiConfig> = BaseThunkAPI<\r\n GetState<ThunkApiConfig>,\r\n GetExtra<ThunkApiConfig>,\r\n GetDispatch<ThunkApiConfig>,\r\n GetRejectValue<ThunkApiConfig>,\r\n GetRejectedMeta<ThunkApiConfig>,\r\n GetFulfilledMeta<ThunkApiConfig>\r\n>\r\n\r\ntype GetRejectValue<ThunkApiConfig> = ThunkApiConfig extends {\r\n rejectValue: infer RejectValue\r\n}\r\n ? RejectValue\r\n : unknown\r\n\r\ntype GetPendingMeta<ThunkApiConfig> = ThunkApiConfig extends {\r\n pendingMeta: infer PendingMeta\r\n}\r\n ? PendingMeta\r\n : unknown\r\n\r\ntype GetFulfilledMeta<ThunkApiConfig> = ThunkApiConfig extends {\r\n fulfilledMeta: infer FulfilledMeta\r\n}\r\n ? FulfilledMeta\r\n : unknown\r\n\r\ntype GetRejectedMeta<ThunkApiConfig> = ThunkApiConfig extends {\r\n rejectedMeta: infer RejectedMeta\r\n}\r\n ? RejectedMeta\r\n : unknown\r\n\r\ntype GetSerializedErrorType<ThunkApiConfig> = ThunkApiConfig extends {\r\n serializedErrorType: infer GetSerializedErrorType\r\n}\r\n ? GetSerializedErrorType\r\n : SerializedError\r\n\r\ntype MaybePromise<T> = T | Promise<T> | (T extends any ? Promise<T> : never)\r\n\r\n/**\r\n * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreatorReturnValue<\r\n Returned,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = MaybePromise<\r\n | IsUnknown<\r\n GetFulfilledMeta<ThunkApiConfig>,\r\n Returned,\r\n FulfillWithMeta<Returned, GetFulfilledMeta<ThunkApiConfig>>\r\n >\r\n | RejectWithValue<\r\n GetRejectValue<ThunkApiConfig>,\r\n GetRejectedMeta<ThunkApiConfig>\r\n >\r\n>\r\n/**\r\n * A type describing the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = (\r\n arg: ThunkArg,\r\n thunkAPI: GetThunkAPI<ThunkApiConfig>\r\n) => AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig>\r\n\r\n/**\r\n * A ThunkAction created by `createAsyncThunk`.\r\n * Dispatching it returns a Promise for either a\r\n * fulfilled or rejected action.\r\n * Also, the returned value contains an `abort()` method\r\n * that allows the asyncAction to be cancelled from the outside.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkAction<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = (\r\n dispatch: GetDispatch<ThunkApiConfig>,\r\n getState: () => GetState<ThunkApiConfig>,\r\n extra: GetExtra<ThunkApiConfig>\r\n) => Promise<\r\n | ReturnType<AsyncThunkFulfilledActionCreator<Returned, ThunkArg>>\r\n | ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>>\r\n> & {\r\n abort: (reason?: string) => void\r\n requestId: string\r\n arg: ThunkArg\r\n unwrap: () => Promise<Returned>\r\n}\r\n\r\ntype AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = IsAny<\r\n ThunkArg,\r\n // any handling\r\n (arg: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\r\n // unknown handling\r\n unknown extends ThunkArg\r\n ? (arg: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument not specified or specified as void or undefined\r\n : [ThunkArg] extends [void] | [undefined]\r\n ? () => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains void\r\n : [void] extends [ThunkArg] // make optional\r\n ? (arg?: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains undefined\r\n : [undefined] extends [ThunkArg]\r\n ? WithStrictNullChecks<\r\n // with strict nullChecks: make optional\r\n (\r\n arg?: ThunkArg\r\n ) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\r\n // without strict null checks this will match everything, so don't make it optional\r\n (arg: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>\r\n > // default case: normal argument\r\n : (arg: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>\r\n>\r\n\r\n/**\r\n * Options object for `createAsyncThunk`.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkOptions<\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = {\r\n /**\r\n * A method to control whether the asyncThunk should be executed. Has access to the\r\n * `arg`, `api.getState()` and `api.extra` arguments.\r\n *\r\n * @returns `false` if it should be skipped\r\n */\r\n condition?(\r\n arg: ThunkArg,\r\n api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>\r\n ): MaybePromise<boolean | undefined>\r\n /**\r\n * If `condition` returns `false`, the asyncThunk will be skipped.\r\n * This option allows you to control whether a `rejected` action with `meta.condition == false`\r\n * will be dispatched or not.\r\n *\r\n * @default `false`\r\n */\r\n dispatchConditionRejection?: boolean\r\n\r\n serializeError?: (x: unknown) => GetSerializedErrorType<ThunkApiConfig>\r\n\r\n /**\r\n * A function to use when generating the `requestId` for the request sequence.\r\n *\r\n * @default `nanoid`\r\n */\r\n idGenerator?: (arg: ThunkArg) => string\r\n} & IsUnknown<\r\n GetPendingMeta<ThunkApiConfig>,\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n *\r\n * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.\r\n * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload\r\n */\r\n getPendingMeta?(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>\r\n ): GetPendingMeta<ThunkApiConfig>\r\n },\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n */\r\n getPendingMeta(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>\r\n ): GetPendingMeta<ThunkApiConfig>\r\n }\r\n>\r\n\r\nexport type AsyncThunkPendingActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [string, ThunkArg, GetPendingMeta<ThunkApiConfig>?],\r\n undefined,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'pending'\r\n } & GetPendingMeta<ThunkApiConfig>\r\n>\r\n\r\nexport type AsyncThunkRejectedActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [\r\n Error | null,\r\n string,\r\n ThunkArg,\r\n GetRejectValue<ThunkApiConfig>?,\r\n GetRejectedMeta<ThunkApiConfig>?\r\n ],\r\n GetRejectValue<ThunkApiConfig> | undefined,\r\n string,\r\n GetSerializedErrorType<ThunkApiConfig>,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'rejected'\r\n aborted: boolean\r\n condition: boolean\r\n } & (\r\n | ({ rejectedWithValue: false } & {\r\n [K in keyof GetRejectedMeta<ThunkApiConfig>]?: undefined\r\n })\r\n | ({ rejectedWithValue: true } & GetRejectedMeta<ThunkApiConfig>)\r\n )\r\n>\r\n\r\nexport type AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [Returned, string, ThunkArg, GetFulfilledMeta<ThunkApiConfig>?],\r\n Returned,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'fulfilled'\r\n } & GetFulfilledMeta<ThunkApiConfig>\r\n>\r\n\r\n/**\r\n * A type describing the return value of `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig> & {\r\n pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig>\r\n rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>\r\n fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >\r\n typePrefix: string\r\n}\r\n\r\ntype OverrideThunkApiConfigs<OldConfig, NewConfig> = Id<\r\n NewConfig & Omit<OldConfig, keyof NewConfig>\r\n>\r\n\r\ntype CreateAsyncThunk<CurriedThunkApiConfig extends AsyncThunkConfig> = {\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n // separate signature without `AsyncThunkConfig` for better inference\r\n <Returned, ThunkArg = void>(\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n CurriedThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions<ThunkArg, CurriedThunkApiConfig>\r\n ): AsyncThunk<Returned, ThunkArg, CurriedThunkApiConfig>\r\n\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n <Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>\r\n >,\r\n options?: AsyncThunkOptions<\r\n ThunkArg,\r\n OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>\r\n >\r\n ): AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>\r\n >\r\n\r\n withTypes<ThunkApiConfig extends AsyncThunkConfig>(): CreateAsyncThunk<\r\n OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>\r\n >\r\n}\r\n\r\nexport const createAsyncThunk = (() => {\r\n function createAsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n >(\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>\r\n ): AsyncThunk<Returned, ThunkArg, ThunkApiConfig> {\r\n type RejectedValue = GetRejectValue<ThunkApiConfig>\r\n type PendingMeta = GetPendingMeta<ThunkApiConfig>\r\n type FulfilledMeta = GetFulfilledMeta<ThunkApiConfig>\r\n type RejectedMeta = GetRejectedMeta<ThunkApiConfig>\r\n\r\n const fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n > = createAction(\r\n typePrefix + '/fulfilled',\r\n (\r\n payload: Returned,\r\n requestId: string,\r\n arg: ThunkArg,\r\n meta?: FulfilledMeta\r\n ) => ({\r\n payload,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'fulfilled' as const,\r\n },\r\n })\r\n )\r\n\r\n const pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig> =\r\n createAction(\r\n typePrefix + '/pending',\r\n (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({\r\n payload: undefined,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'pending' as const,\r\n },\r\n })\r\n )\r\n\r\n const rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> =\r\n createAction(\r\n typePrefix + '/rejected',\r\n (\r\n error: Error | null,\r\n requestId: string,\r\n arg: ThunkArg,\r\n payload?: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => ({\r\n payload,\r\n error: ((options && options.serializeError) || miniSerializeError)(\r\n error || 'Rejected'\r\n ) as GetSerializedErrorType<ThunkApiConfig>,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n rejectedWithValue: !!payload,\r\n requestStatus: 'rejected' as const,\r\n aborted: error?.name === 'AbortError',\r\n condition: error?.name === 'ConditionError',\r\n },\r\n })\r\n )\r\n\r\n let displayedWarning = false\r\n\r\n const AC =\r\n typeof AbortController !== 'undefined'\r\n ? AbortController\r\n : class implements AbortController {\r\n signal = {\r\n aborted: false,\r\n addEventListener() {},\r\n dispatchEvent() {\r\n return false\r\n },\r\n onabort() {},\r\n removeEventListener() {},\r\n reason: undefined,\r\n throwIfAborted() {},\r\n }\r\n abort() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!displayedWarning) {\r\n displayedWarning = true\r\n console.info(\r\n `This platform does not implement AbortController. \r\nIf you want to use the AbortController to react to \\`abort\\` events, please consider importing a polyfill like 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'.`\r\n )\r\n }\r\n }\r\n }\r\n }\r\n\r\n function actionCreator(\r\n arg: ThunkArg\r\n ): AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> {\r\n return (dispatch, getState, extra) => {\r\n const requestId = options?.idGenerator\r\n ? options.idGenerator(arg)\r\n : nanoid()\r\n\r\n const abortController = new AC()\r\n let abortReason: string | undefined\r\n\r\n let started = false\r\n function abort(reason?: string) {\r\n abortReason = reason\r\n abortController.abort()\r\n }\r\n\r\n const promise = (async function () {\r\n let finalAction: ReturnType<typeof fulfilled | typeof rejected>\r\n try {\r\n let conditionResult = options?.condition?.(arg, { getState, extra })\r\n if (isThenable(conditionResult)) {\r\n conditionResult = await conditionResult\r\n }\r\n\r\n if (conditionResult === false || abortController.signal.aborted) {\r\n // eslint-disable-next-line no-throw-literal\r\n throw {\r\n name: 'ConditionError',\r\n message: 'Aborted due to condition callback returning false.',\r\n }\r\n }\r\n started = true\r\n\r\n const abortedPromise = new Promise<never>((_, reject) =>\r\n abortController.signal.addEventListener('abort', () =>\r\n reject({\r\n name: 'AbortError',\r\n message: abortReason || 'Aborted',\r\n })\r\n )\r\n )\r\n dispatch(\r\n pending(\r\n requestId,\r\n arg,\r\n options?.getPendingMeta?.(\r\n { requestId, arg },\r\n { getState, extra }\r\n )\r\n )\r\n )\r\n finalAction = await Promise.race([\r\n abortedPromise,\r\n Promise.resolve(\r\n payloadCreator(arg, {\r\n dispatch,\r\n getState,\r\n extra,\r\n requestId,\r\n signal: abortController.signal,\r\n abort,\r\n rejectWithValue: ((\r\n value: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => {\r\n return new RejectWithValue(value, meta)\r\n }) as any,\r\n fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {\r\n return new FulfillWithMeta(value, meta)\r\n }) as any,\r\n })\r\n ).then((result) => {\r\n if (result instanceof RejectWithValue) {\r\n throw result\r\n }\r\n if (result instanceof FulfillWithMeta) {\r\n return fulfilled(result.payload, requestId, arg, result.meta)\r\n }\r\n return fulfilled(result as any, requestId, arg)\r\n }),\r\n ])\r\n } catch (err) {\r\n finalAction =\r\n err instanceof RejectWithValue\r\n ? rejected(null, requestId, arg, err.payload, err.meta)\r\n : rejected(err as any, requestId, arg)\r\n }\r\n // We dispatch the result action _after_ the catch, to avoid having any errors\r\n // here get swallowed by the try/catch block,\r\n // per https://twitter.com/dan_abramov/status/770914221638942720\r\n // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks\r\n\r\n const skipDispatch =\r\n options &&\r\n !options.dispatchConditionRejection &&\r\n rejected.match(finalAction) &&\r\n (finalAction as any).meta.condition\r\n\r\n if (!skipDispatch) {\r\n dispatch(finalAction)\r\n }\r\n return finalAction\r\n })()\r\n return Object.assign(promise as Promise<any>, {\r\n abort,\r\n requestId,\r\n arg,\r\n unwrap() {\r\n return promise.then<any>(unwrapResult)\r\n },\r\n })\r\n }\r\n }\r\n\r\n return Object.assign(\r\n actionCreator as AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n {\r\n pending,\r\n rejected,\r\n fulfilled,\r\n typePrefix,\r\n }\r\n )\r\n }\r\n createAsyncThunk.withTypes = () => createAsyncThunk\r\n\r\n return createAsyncThunk as CreateAsyncThunk<AsyncThunkConfig>\r\n})()\r\n\r\ninterface UnwrappableAction {\r\n payload: any\r\n meta?: any\r\n error?: any\r\n}\r\n\r\ntype UnwrappedActionPayload<T extends UnwrappableAction> = Exclude<\r\n T,\r\n { error: any }\r\n>['payload']\r\n\r\n/**\r\n * @public\r\n */\r\nexport function unwrapResult<R extends UnwrappableAction>(\r\n action: R\r\n): UnwrappedActionPayload<R> {\r\n if (action.meta && action.meta.rejectedWithValue) {\r\n throw action.payload\r\n }\r\n if (action.error) {\r\n throw action.error\r\n }\r\n return action.payload\r\n}\r\n\r\ntype WithStrictNullChecks<True, False> = undefined extends boolean\r\n ? False\r\n : True\r\n\r\nfunction isThenable(value: any): value is PromiseLike<any> {\r\n return (\r\n value !== null &&\r\n typeof value === 'object' &&\r\n typeof value.then === 'function'\r\n )\r\n}\r\n","import type { Dispatch, AnyAction, MiddlewareAPI } from 'redux'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport { createAction, isAction } from '../createAction'\r\nimport { nanoid } from '../nanoid'\r\n\r\nimport type {\r\n ListenerMiddleware,\r\n ListenerMiddlewareInstance,\r\n AddListenerOverloads,\r\n AnyListenerPredicate,\r\n CreateListenerMiddlewareOptions,\r\n TypedAddListener,\r\n TypedCreateListenerEntry,\r\n FallbackAddListenerOptions,\r\n ListenerEntry,\r\n ListenerErrorHandler,\r\n UnsubscribeListener,\r\n TakePattern,\r\n ListenerErrorInfo,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n TypedRemoveListener,\r\n TaskResult,\r\n AbortSignalWithReason,\r\n UnsubscribeListenerOptions,\r\n ForkOptions,\r\n} from './types'\r\nimport {\r\n abortControllerWithReason,\r\n addAbortSignalListener,\r\n assertFunction,\r\n catchRejection,\r\n} from './utils'\r\nimport {\r\n listenerCancelled,\r\n listenerCompleted,\r\n TaskAbortError,\r\n taskCancelled,\r\n taskCompleted,\r\n} from './exceptions'\r\nimport {\r\n runTask,\r\n validateActive,\r\n createPause,\r\n createDelay,\r\n raceWithSignal,\r\n} from './task'\r\nexport { TaskAbortError } from './exceptions'\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './types'\r\n\r\n//Overly-aggressive byte-shaving\r\nconst { assign } = Object\r\n/**\r\n * @internal\r\n */\r\nconst INTERNAL_NIL_TOKEN = {} as const\r\n\r\nconst alm = 'listenerMiddleware' as const\r\n\r\nconst createFork = (\r\n parentAbortSignal: AbortSignalWithReason<unknown>,\r\n parentBlockingPromises: Promise<any>[]\r\n) => {\r\n const linkControllers = (controller: AbortController) =>\r\n addAbortSignalListener(parentAbortSignal, () =>\r\n abortControllerWithReason(controller, parentAbortSignal.reason)\r\n )\r\n\r\n return <T>(\r\n taskExecutor: ForkedTaskExecutor<T>,\r\n opts?: ForkOptions\r\n ): ForkedTask<T> => {\r\n assertFunction(taskExecutor, 'taskExecutor')\r\n const childAbortController = new AbortController()\r\n\r\n linkControllers(childAbortController)\r\n\r\n const result = runTask<T>(\r\n async (): Promise<T> => {\r\n validateActive(parentAbortSignal)\r\n validateActive(childAbortController.signal)\r\n const result = (await taskExecutor({\r\n pause: createPause(childAbortController.signal),\r\n delay: createDelay(childAbortController.signal),\r\n signal: childAbortController.signal,\r\n })) as T\r\n validateActive(childAbortController.signal)\r\n return result\r\n },\r\n () => abortControllerWithReason(childAbortController, taskCompleted)\r\n )\r\n\r\n if (opts?.autoJoin) {\r\n parentBlockingPromises.push(result)\r\n }\r\n\r\n return {\r\n result: createPause<TaskResult<T>>(parentAbortSignal)(result),\r\n cancel() {\r\n abortControllerWithReason(childAbortController, taskCancelled)\r\n },\r\n }\r\n }\r\n}\r\n\r\nconst createTakePattern = <S>(\r\n startListening: AddListenerOverloads<\r\n UnsubscribeListener,\r\n S,\r\n Dispatch<AnyAction>\r\n >,\r\n signal: AbortSignal\r\n): TakePattern<S> => {\r\n /**\r\n * A function that takes a ListenerPredicate and an optional timeout,\r\n * and resolves when either the predicate returns `true` based on an action\r\n * state combination or when the timeout expires.\r\n * If the parent listener is canceled while waiting, this will throw a\r\n * TaskAbortError.\r\n */\r\n const take = async <P extends AnyListenerPredicate<S>>(\r\n predicate: P,\r\n timeout: number | undefined\r\n ) => {\r\n validateActive(signal)\r\n\r\n // Placeholder unsubscribe function until the listener is added\r\n let unsubscribe: UnsubscribeListener = () => {}\r\n\r\n const tuplePromise = new Promise<[AnyAction, S, S]>((resolve, reject) => {\r\n // Inside the Promise, we synchronously add the listener.\r\n let stopListening = startListening({\r\n predicate: predicate as any,\r\n effect: (action, listenerApi): void => {\r\n // One-shot listener that cleans up as soon as the predicate passes\r\n listenerApi.unsubscribe()\r\n // Resolve the promise with the same arguments the predicate saw\r\n resolve([\r\n action,\r\n listenerApi.getState(),\r\n listenerApi.getOriginalState(),\r\n ])\r\n },\r\n })\r\n unsubscribe = () => {\r\n stopListening()\r\n reject()\r\n }\r\n })\r\n\r\n const promises: (Promise<null> | Promise<[AnyAction, S, S]>)[] = [\r\n tuplePromise,\r\n ]\r\n\r\n if (timeout != null) {\r\n promises.push(\r\n new Promise<null>((resolve) => setTimeout(resolve, timeout, null))\r\n )\r\n }\r\n\r\n try {\r\n const output = await raceWithSignal(signal, Promise.race(promises))\r\n\r\n validateActive(signal)\r\n return output\r\n } finally {\r\n // Always clean up the listener\r\n unsubscribe()\r\n }\r\n }\r\n\r\n return ((predicate: AnyListenerPredicate<S>, timeout: number | undefined) =>\r\n catchRejection(take(predicate, timeout))) as TakePattern<S>\r\n}\r\n\r\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\r\n let { type, actionCreator, matcher, predicate, effect } = options\r\n\r\n if (type) {\r\n predicate = createAction(type).match\r\n } else if (actionCreator) {\r\n type = actionCreator!.type\r\n predicate = actionCreator.match\r\n } else if (matcher) {\r\n predicate = matcher\r\n } else if (predicate) {\r\n // pass\r\n } else {\r\n throw new Error(\r\n 'Creating or removing a listener requires one of the known fields for matching an action'\r\n )\r\n }\r\n\r\n assertFunction(effect, 'options.listener')\r\n\r\n return { predicate, type, effect }\r\n}\r\n\r\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\r\nexport const createListenerEntry: TypedCreateListenerEntry<unknown> = (\r\n options: FallbackAddListenerOptions\r\n) => {\r\n const { type, predicate, effect } = getListenerEntryPropsFrom(options)\r\n\r\n const id = nanoid()\r\n const entry: ListenerEntry<unknown> = {\r\n id,\r\n effect,\r\n type,\r\n predicate,\r\n pending: new Set<AbortController>(),\r\n unsubscribe: () => {\r\n throw new Error('Unsubscribe not initialized')\r\n },\r\n }\r\n\r\n return entry\r\n}\r\n\r\nconst cancelActiveListeners = (\r\n entry: ListenerEntry<unknown, Dispatch<AnyAction>>\r\n) => {\r\n entry.pending.forEach((controller) => {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n })\r\n}\r\n\r\nconst createClearListenerMiddleware = (\r\n listenerMap: Map<string, ListenerEntry>\r\n) => {\r\n return () => {\r\n listenerMap.forEach(cancelActiveListeners)\r\n\r\n listenerMap.clear()\r\n }\r\n}\r\n\r\n/**\r\n * Safely reports errors to the `errorHandler` provided.\r\n * Errors that occur inside `errorHandler` are notified in a new task.\r\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\r\n * @param errorHandler\r\n * @param errorToNotify\r\n */\r\nconst safelyNotifyError = (\r\n errorHandler: ListenerErrorHandler,\r\n errorToNotify: unknown,\r\n errorInfo: ListenerErrorInfo\r\n): void => {\r\n try {\r\n errorHandler(errorToNotify, errorInfo)\r\n } catch (errorHandlerError) {\r\n // We cannot let an error raised here block the listener queue.\r\n // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\r\n setTimeout(() => {\r\n throw errorHandlerError\r\n }, 0)\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const addListener = createAction(\r\n `${alm}/add`\r\n) as TypedAddListener<unknown>\r\n\r\n/**\r\n * @public\r\n */\r\nexport const clearAllListeners = createAction(`${alm}/removeAll`)\r\n\r\n/**\r\n * @public\r\n */\r\nexport const removeListener = createAction(\r\n `${alm}/remove`\r\n) as TypedRemoveListener<unknown>\r\n\r\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\r\n console.error(`${alm}/error`, ...args)\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport function createListenerMiddleware<\r\n S = unknown,\r\n D extends Dispatch<AnyAction> = ThunkDispatch<S, unknown, AnyAction>,\r\n ExtraArgument = unknown\r\n>(middlewareOptions: CreateListenerMiddlewareOptions<ExtraArgument> = {}) {\r\n const listenerMap = new Map<string, ListenerEntry>()\r\n const { extra, onError = defaultErrorHandler } = middlewareOptions\r\n\r\n assertFunction(onError, 'onError')\r\n\r\n const insertEntry = (entry: ListenerEntry) => {\r\n entry.unsubscribe = () => listenerMap.delete(entry!.id)\r\n\r\n listenerMap.set(entry.id, entry)\r\n return (cancelOptions?: UnsubscribeListenerOptions) => {\r\n entry.unsubscribe()\r\n if (cancelOptions?.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n }\r\n\r\n const findListenerEntry = (\r\n comparator: (entry: ListenerEntry) => boolean\r\n ): ListenerEntry | undefined => {\r\n for (const entry of Array.from(listenerMap.values())) {\r\n if (comparator(entry)) {\r\n return entry\r\n }\r\n }\r\n\r\n return undefined\r\n }\r\n\r\n const startListening = (options: FallbackAddListenerOptions) => {\r\n let entry = findListenerEntry(\r\n (existingEntry) => existingEntry.effect === options.effect\r\n )\r\n\r\n if (!entry) {\r\n entry = createListenerEntry(options as any)\r\n }\r\n\r\n return insertEntry(entry)\r\n }\r\n\r\n const stopListening = (\r\n options: FallbackAddListenerOptions & UnsubscribeListenerOptions\r\n ): boolean => {\r\n const { type, effect, predicate } = getListenerEntryPropsFrom(options)\r\n\r\n const entry = findListenerEntry((entry) => {\r\n const matchPredicateOrType =\r\n typeof type === 'string'\r\n ? entry.type === type\r\n : entry.predicate === predicate\r\n\r\n return matchPredicateOrType && entry.effect === effect\r\n })\r\n\r\n if (entry) {\r\n entry.unsubscribe()\r\n if (options.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n\r\n return !!entry\r\n }\r\n\r\n const notifyListener = async (\r\n entry: ListenerEntry<unknown, Dispatch<AnyAction>>,\r\n action: AnyAction,\r\n api: MiddlewareAPI,\r\n getOriginalState: () => S\r\n ) => {\r\n const internalTaskController = new AbortController()\r\n const take = createTakePattern(\r\n startListening,\r\n internalTaskController.signal\r\n )\r\n const autoJoinPromises: Promise<any>[] = []\r\n\r\n try {\r\n entry.pending.add(internalTaskController)\r\n await Promise.resolve(\r\n entry.effect(\r\n action,\r\n // Use assign() rather than ... to avoid extra helper functions added to bundle\r\n assign({}, api, {\r\n getOriginalState,\r\n condition: (\r\n predicate: AnyListenerPredicate<any>,\r\n timeout?: number\r\n ) => take(predicate, timeout).then(Boolean),\r\n take,\r\n delay: createDelay(internalTaskController.signal),\r\n pause: createPause<any>(internalTaskController.signal),\r\n extra,\r\n signal: internalTaskController.signal,\r\n fork: createFork(internalTaskController.signal, autoJoinPromises),\r\n unsubscribe: entry.unsubscribe,\r\n subscribe: () => {\r\n listenerMap.set(entry.id, entry)\r\n },\r\n cancelActiveListeners: () => {\r\n entry.pending.forEach((controller, _, set) => {\r\n if (controller !== internalTaskController) {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n set.delete(controller)\r\n }\r\n })\r\n },\r\n })\r\n )\r\n )\r\n } catch (listenerError) {\r\n if (!(listenerError instanceof TaskAbortError)) {\r\n safelyNotifyError(onError, listenerError, {\r\n raisedBy: 'effect',\r\n })\r\n }\r\n } finally {\r\n await Promise.allSettled(autoJoinPromises)\r\n\r\n abortControllerWithReason(internalTaskController, listenerCompleted) // Notify that the task has completed\r\n entry.pending.delete(internalTaskController)\r\n }\r\n }\r\n\r\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap)\r\n\r\n const middleware: ListenerMiddleware<S, D, ExtraArgument> =\r\n (api) => (next) => (action) => {\r\n if (!isAction(action)) {\r\n // we only want to notify listeners for action objects\r\n return next(action)\r\n }\r\n\r\n if (addListener.match(action)) {\r\n return startListening(action.payload)\r\n }\r\n\r\n if (clearAllListeners.match(action)) {\r\n clearListenerMiddleware()\r\n return\r\n }\r\n\r\n if (removeListener.match(action)) {\r\n return stopListening(action.payload)\r\n }\r\n\r\n // Need to get this state _before_ the reducer processes the action\r\n let originalState: S | typeof INTERNAL_NIL_TOKEN = api.getState()\r\n\r\n // `getOriginalState` can only be called synchronously.\r\n // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\r\n const getOriginalState = (): S => {\r\n if (originalState === INTERNAL_NIL_TOKEN) {\r\n throw new Error(\r\n `${alm}: getOriginalState can only be called synchronously`\r\n )\r\n }\r\n\r\n return originalState as S\r\n }\r\n\r\n let result: unknown\r\n\r\n try {\r\n // Actually forward the action to the reducer before we handle listeners\r\n result = next(action)\r\n\r\n if (listenerMap.size > 0) {\r\n let currentState = api.getState()\r\n // Work around ESBuild+TS transpilation issue\r\n const listenerEntries = Array.from(listenerMap.values())\r\n for (let entry of listenerEntries) {\r\n let runListener = false\r\n\r\n try {\r\n runListener = entry.predicate(action, currentState, originalState)\r\n } catch (predicateError) {\r\n runListener = false\r\n\r\n safelyNotifyError(onError, predicateError, {\r\n raisedBy: 'predicate',\r\n })\r\n }\r\n\r\n if (!runListener) {\r\n continue\r\n }\r\n\r\n notifyListener(entry, action, api, getOriginalState)\r\n }\r\n }\r\n } finally {\r\n // Remove `originalState` store from this scope.\r\n originalState = INTERNAL_NIL_TOKEN\r\n }\r\n\r\n return result\r\n }\r\n\r\n return {\r\n middleware,\r\n startListening,\r\n stopListening,\r\n clearListeners: clearListenerMiddleware,\r\n } as ListenerMiddlewareInstance<S, D, ExtraArgument>\r\n}\r\n","import { TaskAbortError } from './exceptions'\r\nimport type { AbortSignalWithReason, TaskResult } from './types'\r\nimport { addAbortSignalListener, catchRejection, noop } from './utils'\r\n\r\n/**\r\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\r\n * @param signal\r\n * @param reason\r\n * @see {TaskAbortError}\r\n */\r\nexport const validateActive = (signal: AbortSignal): void => {\r\n if (signal.aborted) {\r\n throw new TaskAbortError((signal as AbortSignalWithReason<string>).reason)\r\n }\r\n}\r\n\r\n/**\r\n * Generates a race between the promise(s) and the AbortSignal\r\n * This avoids `Promise.race()`-related memory leaks:\r\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\r\n */\r\nexport function raceWithSignal<T>(\r\n signal: AbortSignalWithReason<string>,\r\n promise: Promise<T>\r\n): Promise<T> {\r\n let cleanup = noop\r\n return new Promise<T>((resolve, reject) => {\r\n const notifyRejection = () => reject(new TaskAbortError(signal.reason))\r\n\r\n if (signal.aborted) {\r\n notifyRejection()\r\n return\r\n }\r\n\r\n cleanup = addAbortSignalListener(signal, notifyRejection)\r\n promise.finally(() => cleanup()).then(resolve, reject)\r\n }).finally(() => {\r\n // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\r\n cleanup = noop\r\n })\r\n}\r\n\r\n/**\r\n * Runs a task and returns promise that resolves to {@link TaskResult}.\r\n * Second argument is an optional `cleanUp` function that always runs after task.\r\n *\r\n * **Note:** `runTask` runs the executor in the next microtask.\r\n * @returns\r\n */\r\nexport const runTask = async <T>(\r\n task: () => Promise<T>,\r\n cleanUp?: () => void\r\n): Promise<TaskResult<T>> => {\r\n try {\r\n await Promise.resolve()\r\n const value = await task()\r\n return {\r\n status: 'ok',\r\n value,\r\n }\r\n } catch (error: any) {\r\n return {\r\n status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\r\n error,\r\n }\r\n } finally {\r\n cleanUp?.()\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and a promise returns another promise that resolves\r\n * as soon the input promise is provided or rejects as soon as\r\n * `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createPause = <T>(signal: AbortSignal) => {\r\n return (promise: Promise<T>): Promise<T> => {\r\n return catchRejection(\r\n raceWithSignal(signal, promise).then((output) => {\r\n validateActive(signal)\r\n return output\r\n })\r\n )\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\r\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createDelay = (signal: AbortSignal) => {\r\n const pause = createPause<void>(signal)\r\n return (timeoutMs: number): Promise<void> => {\r\n return pause(new Promise<void>((resolve) => setTimeout(resolve, timeoutMs)))\r\n }\r\n}\r\n","import type { StoreEnhancer } from 'redux'\r\n\r\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch'\r\n\r\nexport const prepareAutoBatched =\r\n <T>() =>\r\n (payload: T): { payload: T; meta: unknown } => ({\r\n payload,\r\n meta: { [SHOULD_AUTOBATCH]: true },\r\n })\r\n\r\n// TODO Remove this in 2.0\r\n// Copied from https://github.com/feross/queue-microtask\r\nlet promise: Promise<any>\r\nconst queueMicrotaskShim =\r\n typeof queueMicrotask === 'function'\r\n ? queueMicrotask.bind(\r\n typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : globalThis\r\n )\r\n : // reuse resolved promise, and allocate it lazily\r\n (cb: () => void) =>\r\n (promise || (promise = Promise.resolve())).then(cb).catch((err: any) =>\r\n setTimeout(() => {\r\n throw err\r\n }, 0)\r\n )\r\n\r\nconst createQueueWithTimer = (timeout: number) => {\r\n return (notify: () => void) => {\r\n setTimeout(notify, timeout)\r\n }\r\n}\r\n\r\n// requestAnimationFrame won't exist in SSR environments.\r\n// Fall back to a vague approximation just to keep from erroring.\r\nconst rAF =\r\n typeof window !== 'undefined' && window.requestAnimationFrame\r\n ? window.requestAnimationFrame\r\n : createQueueWithTimer(10)\r\n\r\nexport type AutoBatchOptions =\r\n | { type: 'tick' }\r\n | { type: 'timer'; timeout: number }\r\n | { type: 'raf' }\r\n | { type: 'callback'; queueNotification: (notify: () => void) => void }\r\n\r\n/**\r\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\r\n * notifying subscribers until either the queued callback executes or the\r\n * next \"standard-priority\" action is dispatched.\r\n *\r\n * This allows dispatching multiple \"low-priority\" actions in a row with only\r\n * a single subscriber notification to the UI after the sequence of actions\r\n * is finished, thus improving UI re-render performance.\r\n *\r\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\r\n * This can be added to `action.meta` manually, or by using the\r\n * `prepareAutoBatched` helper.\r\n *\r\n * By default, it will queue a notification for the end of the event loop tick.\r\n * However, you can pass several other options to configure the behavior:\r\n * - `{type: 'tick'}: queues using `queueMicrotask` (default)\r\n * - `{type: 'timer, timeout: number}`: queues using `setTimeout`\r\n * - `{type: 'raf'}`: queues using `requestAnimationFrame`\r\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}: lets you provide your own callback\r\n *\r\n *\r\n */\r\nexport const autoBatchEnhancer =\r\n (options: AutoBatchOptions = { type: 'raf' }): StoreEnhancer =>\r\n (next) =>\r\n (...args) => {\r\n const store = next(...args)\r\n\r\n let notifying = true\r\n let shouldNotifyAtEndOfTick = false\r\n let notificationQueued = false\r\n\r\n const listeners = new Set<() => void>()\r\n\r\n const queueCallback =\r\n options.type === 'tick'\r\n ? queueMicrotaskShim\r\n : options.type === 'raf'\r\n ? rAF\r\n : options.type === 'callback'\r\n ? options.queueNotification\r\n : createQueueWithTimer(options.timeout)\r\n\r\n const notifyListeners = () => {\r\n // We're running at the end of the event loop tick.\r\n // Run the real listener callbacks to actually update the UI.\r\n notificationQueued = false\r\n if (shouldNotifyAtEndOfTick) {\r\n shouldNotifyAtEndOfTick = false\r\n listeners.forEach((l) => l())\r\n }\r\n }\r\n\r\n return Object.assign({}, store, {\r\n // Override the base `store.subscribe` method to keep original listeners\r\n // from running if we're delaying notifications\r\n subscribe(listener: () => void) {\r\n // Each wrapped listener will only call the real listener if\r\n // the `notifying` flag is currently active when it's called.\r\n // This lets the base store work as normal, while the actual UI\r\n // update becomes controlled by this enhancer.\r\n const wrappedListener: typeof listener = () => notifying && listener()\r\n const unsubscribe = store.subscribe(wrappedListener)\r\n listeners.add(listener)\r\n return () => {\r\n unsubscribe()\r\n listeners.delete(listener)\r\n }\r\n },\r\n // Override the base `store.dispatch` method so that we can check actions\r\n // for the `shouldAutoBatch` flag and determine if batching is active\r\n dispatch(action: any) {\r\n try {\r\n // If the action does _not_ have the `shouldAutoBatch` flag,\r\n // we resume/continue normal notify-after-each-dispatch behavior\r\n notifying = !action?.meta?.[SHOULD_AUTOBATCH]\r\n // If a `notifyListeners` microtask was queued, you can't cancel it.\r\n // Instead, we set a flag so that it's a no-op when it does run\r\n shouldNotifyAtEndOfTick = !notifying\r\n if (shouldNotifyAtEndOfTick) {\r\n // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\r\n // a microtask to notify listeners at the end of the event loop tick.\r\n // Make sure we only enqueue this _once_ per tick.\r\n if (!notificationQueued) {\r\n notificationQueued = true\r\n queueCallback(notifyListeners)\r\n }\r\n }\r\n // Go ahead and process the action as usual, including reducers.\r\n // If normal notification behavior is enabled, the store will notify\r\n // all of its own listeners, and the wrapper callbacks above will\r\n // see `notifying` is true and pass on to the real listener callbacks.\r\n // If we're \"batching\" behavior, then the wrapped callbacks will\r\n // bail out, causing the base store notification behavior to be no-ops.\r\n return store.dispatch(action)\r\n } finally {\r\n // Assume we're back to normal behavior after each action\r\n notifying = true\r\n }\r\n },\r\n })\r\n }\r\n","/**\n * Checks whether we're in a Node.js environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv(): boolean {\n return typeof process === 'object' && process?.versions?.node !== undefined;\n}\n\n/**\n * Checks whether we're in a browser environment\n *\n * @returns Answer to given question\n */\nexport function isBrowserEnv(): boolean {\n return typeof window === 'object' && window?.document !== undefined;\n}\n\nconst fallbackGlobalObject = {};\n\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport const getGlobalObject = (): any => {\n if (isNodeEnv()) {\n return global;\n } else if (typeof window !== 'undefined') {\n return window;\n } else if (typeof self !== 'undefined') {\n return self;\n } else {\n return fallbackGlobalObject;\n }\n};\n\nexport const getGlobalAmplitudeNamespace = (): any => {\n const global = getGlobalObject();\n if (global.__AMPLITUDE__ === undefined) {\n global.__AMPLITUDE__ = {};\n }\n\n return global.__AMPLITUDE__;\n};\n\n/**\n * A promise-based way to sleep for x millseconds, then queue ourselves back to the\n * JS event loop.\n *\n * @param milliseconds The number of milliseconds to wait for\n */\nexport const asyncSleep = async (milliseconds: number): Promise<void> => {\n return await new Promise(resolve => setTimeout(resolve, milliseconds));\n};\n\n/**\n * Fixes browser edge case where Prototype.js injects Array.prototype.toJSON and breaks the built-in JSON.stringify()\n *\n * @returns true if Array.prototype.toJSON was deleted, false if not\n */\nexport const prototypeJsFix = (): boolean => {\n // Augment and cast built-ins to represent Prototype.js injection\n interface Window {\n Prototype?: Record<string, any>;\n }\n interface ArrayConstructor {\n prototype?: { toJSON?: Function };\n }\n if (isBrowserEnv()) {\n const augmentedWindow = window as Window;\n const augmentedArray = Array as ArrayConstructor;\n if (augmentedWindow.Prototype !== undefined && augmentedArray.prototype?.toJSON !== undefined) {\n delete augmentedArray.prototype.toJSON;\n return true;\n }\n }\n return false;\n};\n","import { enableES5 } from 'immer'\r\nexport * from 'redux'\r\nexport {\r\n default as createNextState,\r\n current,\r\n freeze,\r\n original,\r\n isDraft,\r\n} from 'immer'\r\nexport type { Draft } from 'immer'\r\nexport { createSelector } from 'reselect'\r\nexport type {\r\n Selector,\r\n OutputParametricSelector,\r\n OutputSelector,\r\n ParametricSelector,\r\n} from 'reselect'\r\nexport { createDraftSafeSelector } from './createDraftSafeSelector'\r\nexport type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk'\r\n\r\n// We deliberately enable Immer's ES5 support, on the grounds that\r\n// we assume RTK will be used with React Native and other Proxy-less\r\n// environments. In addition, that's how Immer 4 behaved, and since\r\n// we want to ship this in an RTK minor, we should keep the same behavior.\r\nenableES5()\r\n\r\nexport {\r\n // js\r\n configureStore,\r\n} from './configureStore'\r\nexport type {\r\n // types\r\n ConfigureEnhancersCallback,\r\n ConfigureStoreOptions,\r\n EnhancedStore,\r\n} from './configureStore'\r\nexport type { DevToolsEnhancerOptions } from './devtoolsExtension'\r\nexport {\r\n // js\r\n createAction,\r\n getType,\r\n isAction,\r\n isActionCreator,\r\n isFSA as isFluxStandardAction,\r\n} from './createAction'\r\nexport type {\r\n // types\r\n PayloadAction,\r\n PayloadActionCreator,\r\n ActionCreatorWithNonInferrablePayload,\r\n ActionCreatorWithOptionalPayload,\r\n ActionCreatorWithPayload,\r\n ActionCreatorWithoutPayload,\r\n ActionCreatorWithPreparedPayload,\r\n PrepareAction,\r\n} from './createAction'\r\nexport {\r\n // js\r\n createReducer,\r\n} from './createReducer'\r\nexport type {\r\n // types\r\n Actions,\r\n CaseReducer,\r\n CaseReducers,\r\n} from './createReducer'\r\nexport {\r\n // js\r\n createSlice,\r\n} from './createSlice'\r\n\r\nexport type {\r\n // types\r\n CreateSliceOptions,\r\n Slice,\r\n CaseReducerActions,\r\n SliceCaseReducers,\r\n ValidateSliceCaseReducers,\r\n CaseReducerWithPrepare,\r\n SliceActionCreator,\r\n} from './createSlice'\r\nexport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware'\r\nexport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware'\r\nexport {\r\n // js\r\n createImmutableStateInvariantMiddleware,\r\n isImmutableDefault,\r\n} from './immutableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n ImmutableStateInvariantMiddlewareOptions,\r\n} from './immutableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n createSerializableStateInvariantMiddleware,\r\n findNonSerializableValue,\r\n isPlain,\r\n} from './serializableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n SerializableStateInvariantMiddlewareOptions,\r\n} from './serializableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n getDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nexport type {\r\n // types\r\n ActionReducerMapBuilder,\r\n} from './mapBuilders'\r\nexport { MiddlewareArray, EnhancerArray } from './utils'\r\n\r\nexport { createEntityAdapter } from './entities/create_adapter'\r\nexport type {\r\n Dictionary,\r\n EntityState,\r\n EntityAdapter,\r\n EntitySelectors,\r\n EntityStateAdapter,\r\n EntityId,\r\n Update,\r\n IdSelector,\r\n Comparer,\r\n} from './entities/models'\r\n\r\nexport {\r\n createAsyncThunk,\r\n unwrapResult,\r\n miniSerializeError,\r\n} from './createAsyncThunk'\r\nexport type {\r\n AsyncThunk,\r\n AsyncThunkOptions,\r\n AsyncThunkAction,\r\n AsyncThunkPayloadCreatorReturnValue,\r\n AsyncThunkPayloadCreator,\r\n SerializedError,\r\n} from './createAsyncThunk'\r\n\r\nexport {\r\n // js\r\n isAllOf,\r\n isAnyOf,\r\n isPending,\r\n isRejected,\r\n isFulfilled,\r\n isAsyncThunkAction,\r\n isRejectedWithValue,\r\n} from './matchers'\r\nexport type {\r\n // types\r\n ActionMatchingAllOf,\r\n ActionMatchingAnyOf,\r\n} from './matchers'\r\n\r\nexport { nanoid } from './nanoid'\r\n\r\nexport { default as isPlainObject } from './isPlainObject'\r\n\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './listenerMiddleware/index'\r\nexport type { AnyListenerPredicate } from './listenerMiddleware/types'\r\n\r\nexport {\r\n createListenerMiddleware,\r\n addListener,\r\n removeListener,\r\n clearAllListeners,\r\n TaskAbortError,\r\n} from './listenerMiddleware/index'\r\n\r\nexport {\r\n SHOULD_AUTOBATCH,\r\n prepareAutoBatched,\r\n autoBatchEnhancer,\r\n} from './autoBatchEnhancer'\r\nexport type { AutoBatchOptions } from './autoBatchEnhancer'\r\n\r\nexport type { ExtractDispatchExtensions as TSHelpersExtractDispatchExtensions } from './tsHelpers'\r\n","const token = '%[a-f0-9]{2}';\nconst singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nconst multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tconst left = components.slice(0, split);\n\tconst right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch {\n\t\tlet tokens = input.match(singleMatcher) || [];\n\n\t\tfor (let i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tconst replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD',\n\t};\n\n\tlet match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch {\n\t\t\tconst result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tconst entries = Object.keys(replaceMap);\n\n\tfor (const key of entries) {\n\t\t// Replace all decoded components\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nexport default function decodeUriComponent(encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n}\n","export default function splitOnFirst(string, separator) {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (string === '' || separator === '') {\n\t\treturn [];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n}\n","export function includeKeys(object, predicate) {\n\tconst result = {};\n\n\tif (Array.isArray(predicate)) {\n\t\tfor (const key of predicate) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor?.enumerable) {\n\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// `Reflect.ownKeys()` is required to retrieve symbol properties\n\t\tfor (const key of Reflect.ownKeys(object)) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor.enumerable) {\n\t\t\t\tconst value = object[key];\n\t\t\t\tif (predicate(key, value, object)) {\n\t\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\nexport function excludeKeys(object, predicate) {\n\tif (Array.isArray(predicate)) {\n\t\tconst set = new Set(predicate);\n\t\treturn includeKeys(object, key => !set.has(key));\n\t}\n\n\treturn includeKeys(object, (key, value, object) => !predicate(key, value, object));\n}\n","import decodeComponent from 'decode-uri-component';\nimport splitOnFirst from 'split-on-first';\nimport {includeKeys} from 'filter-obj';\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\n// eslint-disable-next-line unicorn/prefer-code-point\nconst strictUriEncode = string => encodeURIComponent(string).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result, [encode(key, options), '[', index, ']'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), '[]'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[]=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), ':list='].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), ':list=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator'\n\t\t\t\t? '[]='\n\t\t\t\t: '=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\tencode(key, options),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : (value === null ? value : decode(value, options));\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null\n\t\t\t\t\t? []\n\t\t\t\t\t: value.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], ...arrayValue];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...[accumulator[key]].flat(), value];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nexport function extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nexport function parse(query, options) {\n\toptions = {\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false,\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst returnValue = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn returnValue;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn returnValue;\n\t}\n\n\tfor (const parameter of query.split('&')) {\n\t\tif (parameter === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst parameter_ = options.decode ? parameter.replace(/\\+/g, ' ') : parameter;\n\n\t\tlet [key, value] = splitOnFirst(parameter_, '=');\n\n\t\tif (key === undefined) {\n\t\t\tkey = parameter_;\n\t\t}\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : (['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options));\n\t\tformatter(decode(key, options), value, returnValue);\n\t}\n\n\tfor (const [key, value] of Object.entries(returnValue)) {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const [key2, value2] of Object.entries(value)) {\n\t\t\t\tvalue[key2] = parseValue(value2, options);\n\t\t\t}\n\t\t} else {\n\t\t\treturnValue[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn returnValue;\n\t}\n\n\t// TODO: Remove the use of `reduce`.\n\t// eslint-disable-next-line unicorn/no-array-reduce\n\treturn (options.sort === true ? Object.keys(returnValue).sort() : Object.keys(returnValue).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = returnValue[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexport function stringify(object, options) {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = {encode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',', ...options};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key]))\n\t\t|| (options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = value;\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n}\n\nexport function parseUrl(url, options) {\n\toptions = {\n\t\tdecode: true,\n\t\t...options,\n\t};\n\n\tlet [url_, hash] = splitOnFirst(url, '#');\n\n\tif (url_ === undefined) {\n\t\turl_ = url;\n\t}\n\n\treturn {\n\t\turl: url_?.split('?')?.[0] ?? '',\n\t\tquery: parse(extract(url), options),\n\t\t...(options && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}),\n\t};\n}\n\nexport function stringifyUrl(object, options) {\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true,\n\t\t...options,\n\t};\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = extract(object.url);\n\n\tconst query = {\n\t\t...parse(queryFromUrl, {sort: false}),\n\t\t...object.query,\n\t};\n\n\tlet queryString = stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\tconst urlObjectForFragmentEncode = new URL(url);\n\t\turlObjectForFragmentEncode.hash = object.fragmentIdentifier;\n\t\thash = options[encodeFragmentIdentifier] ? urlObjectForFragmentEncode.hash : `#${object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n}\n\nexport function pick(input, filter, options) {\n\toptions = {\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false,\n\t\t...options,\n\t};\n\n\tconst {url, query, fragmentIdentifier} = parseUrl(input, options);\n\n\treturn stringifyUrl({\n\t\turl,\n\t\tquery: includeKeys(query, filter),\n\t\tfragmentIdentifier,\n\t}, options);\n}\n\nexport function exclude(input, filter, options) {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn pick(input, exclusionFilter, options);\n}\n","import * as queryString from './base.js';\n\nexport default queryString;\n","var ApplicationContextProviderImpl = /** @class */ (function () {\n function ApplicationContextProviderImpl() {\n }\n ApplicationContextProviderImpl.prototype.getApplicationContext = function () {\n return {\n versionName: this.versionName,\n language: getLanguage(),\n platform: 'Web',\n os: undefined,\n deviceModel: undefined,\n };\n };\n return ApplicationContextProviderImpl;\n}());\nvar getLanguage = function () {\n return ((typeof navigator !== 'undefined' &&\n ((navigator.languages && navigator.languages[0]) ||\n navigator.language)) ||\n '');\n};\n\nvar EventBridgeImpl = /** @class */ (function () {\n function EventBridgeImpl() {\n this.queue = [];\n }\n EventBridgeImpl.prototype.logEvent = function (event) {\n if (!this.receiver) {\n if (this.queue.length < 512) {\n this.queue.push(event);\n }\n }\n else {\n this.receiver(event);\n }\n };\n EventBridgeImpl.prototype.setEventReceiver = function (receiver) {\n this.receiver = receiver;\n if (this.queue.length > 0) {\n this.queue.forEach(function (event) {\n receiver(event);\n });\n this.queue = [];\n }\n };\n return EventBridgeImpl;\n}());\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\nvar __assign = function () {\n __assign = Object.assign || function __assign(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)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar isEqual = function (obj1, obj2) {\n var primitive = ['string', 'number', 'boolean', 'undefined'];\n var typeA = typeof obj1;\n var typeB = typeof obj2;\n if (typeA !== typeB) {\n return false;\n }\n for (var _i = 0, primitive_1 = primitive; _i < primitive_1.length; _i++) {\n var p = primitive_1[_i];\n if (p === typeA) {\n return obj1 === obj2;\n }\n }\n // check null\n if (obj1 == null && obj2 == null) {\n return true;\n }\n else if (obj1 == null || obj2 == null) {\n return false;\n }\n // if got here - objects\n if (obj1.length !== obj2.length) {\n return false;\n }\n //check if arrays\n var isArrayA = Array.isArray(obj1);\n var isArrayB = Array.isArray(obj2);\n if (isArrayA !== isArrayB) {\n return false;\n }\n if (isArrayA && isArrayB) {\n //arrays\n for (var i = 0; i < obj1.length; i++) {\n if (!isEqual(obj1[i], obj2[i])) {\n return false;\n }\n }\n }\n else {\n //objects\n var sorted1 = Object.keys(obj1).sort();\n var sorted2 = Object.keys(obj2).sort();\n if (!isEqual(sorted1, sorted2)) {\n return false;\n }\n //compare object values\n var result_1 = true;\n Object.keys(obj1).forEach(function (key) {\n if (!isEqual(obj1[key], obj2[key])) {\n result_1 = false;\n }\n });\n return result_1;\n }\n return true;\n};\n\nvar ID_OP_SET = '$set';\nvar ID_OP_UNSET = '$unset';\nvar ID_OP_CLEAR_ALL = '$clearAll';\n// Polyfill for Object.entries\nif (!Object.entries) {\n Object.entries = function (obj) {\n var ownProps = Object.keys(obj);\n var i = ownProps.length;\n var resArray = new Array(i);\n while (i--) {\n resArray[i] = [ownProps[i], obj[ownProps[i]]];\n }\n return resArray;\n };\n}\nvar IdentityStoreImpl = /** @class */ (function () {\n function IdentityStoreImpl() {\n this.identity = { userProperties: {} };\n this.listeners = new Set();\n }\n IdentityStoreImpl.prototype.editIdentity = function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n var actingUserProperties = __assign({}, this.identity.userProperties);\n var actingIdentity = __assign(__assign({}, this.identity), { userProperties: actingUserProperties });\n return {\n setUserId: function (userId) {\n actingIdentity.userId = userId;\n return this;\n },\n setDeviceId: function (deviceId) {\n actingIdentity.deviceId = deviceId;\n return this;\n },\n setUserProperties: function (userProperties) {\n actingIdentity.userProperties = userProperties;\n return this;\n },\n setOptOut: function (optOut) {\n actingIdentity.optOut = optOut;\n return this;\n },\n updateUserProperties: function (actions) {\n var actingProperties = actingIdentity.userProperties || {};\n for (var _i = 0, _a = Object.entries(actions); _i < _a.length; _i++) {\n var _b = _a[_i], action = _b[0], properties = _b[1];\n switch (action) {\n case ID_OP_SET:\n for (var _c = 0, _d = Object.entries(properties); _c < _d.length; _c++) {\n var _e = _d[_c], key = _e[0], value = _e[1];\n actingProperties[key] = value;\n }\n break;\n case ID_OP_UNSET:\n for (var _f = 0, _g = Object.keys(properties); _f < _g.length; _f++) {\n var key = _g[_f];\n delete actingProperties[key];\n }\n break;\n case ID_OP_CLEAR_ALL:\n actingProperties = {};\n break;\n }\n }\n actingIdentity.userProperties = actingProperties;\n return this;\n },\n commit: function () {\n self.setIdentity(actingIdentity);\n return this;\n },\n };\n };\n IdentityStoreImpl.prototype.getIdentity = function () {\n return __assign({}, this.identity);\n };\n IdentityStoreImpl.prototype.setIdentity = function (identity) {\n var originalIdentity = __assign({}, this.identity);\n this.identity = __assign({}, identity);\n if (!isEqual(originalIdentity, this.identity)) {\n this.listeners.forEach(function (listener) {\n listener(identity);\n });\n }\n };\n IdentityStoreImpl.prototype.addIdentityListener = function (listener) {\n this.listeners.add(listener);\n };\n IdentityStoreImpl.prototype.removeIdentityListener = function (listener) {\n this.listeners.delete(listener);\n };\n return IdentityStoreImpl;\n}());\n\nvar safeGlobal = typeof globalThis !== 'undefined'\n ? globalThis\n : typeof global !== 'undefined'\n ? global\n : self;\n\nvar AnalyticsConnector = /** @class */ (function () {\n function AnalyticsConnector() {\n this.identityStore = new IdentityStoreImpl();\n this.eventBridge = new EventBridgeImpl();\n this.applicationContextProvider = new ApplicationContextProviderImpl();\n }\n AnalyticsConnector.getInstance = function (instanceName) {\n if (!safeGlobal['analyticsConnectorInstances']) {\n safeGlobal['analyticsConnectorInstances'] = {};\n }\n if (!safeGlobal['analyticsConnectorInstances'][instanceName]) {\n safeGlobal['analyticsConnectorInstances'][instanceName] =\n new AnalyticsConnector();\n }\n return safeGlobal['analyticsConnectorInstances'][instanceName];\n };\n return AnalyticsConnector;\n}());\n\nexport { AnalyticsConnector };\n","import { isBrowserEnv, prototypeJsFix } from '@amplitude/utils';\nimport md5 from 'blueimp-md5';\nimport queryString from 'query-string';\nimport UAParser from '@amplitude/ua-parser-js';\nimport { AnalyticsConnector } from '@amplitude/analytics-connector';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function () {};\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = it.call(o);\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar Constants = {\n DEFAULT_INSTANCE: '$default_instance',\n API_VERSION: 2,\n MAX_STRING_LENGTH: 4096,\n MAX_PROPERTY_KEYS: 1000,\n IDENTIFY_EVENT: '$identify',\n GROUP_IDENTIFY_EVENT: '$groupidentify',\n EVENT_LOG_URL: 'api.amplitude.com',\n EVENT_LOG_EU_URL: 'api.eu.amplitude.com',\n DYNAMIC_CONFIG_URL: 'regionconfig.amplitude.com',\n DYNAMIC_CONFIG_EU_URL: 'regionconfig.eu.amplitude.com',\n // localStorageKeys\n LAST_EVENT_ID: 'amplitude_lastEventId',\n LAST_EVENT_TIME: 'amplitude_lastEventTime',\n LAST_IDENTIFY_ID: 'amplitude_lastIdentifyId',\n LAST_SEQUENCE_NUMBER: 'amplitude_lastSequenceNumber',\n SESSION_ID: 'amplitude_sessionId',\n // Used in cookie as well\n DEVICE_ID: 'amplitude_deviceId',\n OPT_OUT: 'amplitude_optOut',\n USER_ID: 'amplitude_userId',\n // indexes of properties in cookie v2 storage format\n DEVICE_ID_INDEX: 0,\n USER_ID_INDEX: 1,\n OPT_OUT_INDEX: 2,\n SESSION_ID_INDEX: 3,\n LAST_EVENT_TIME_INDEX: 4,\n EVENT_ID_INDEX: 5,\n IDENTIFY_ID_INDEX: 6,\n SEQUENCE_NUMBER_INDEX: 7,\n COOKIE_TEST_PREFIX: 'amp_cookie_test',\n COOKIE_PREFIX: 'amp',\n // Storage options\n STORAGE_DEFAULT: '',\n STORAGE_COOKIES: 'cookies',\n STORAGE_NONE: 'none',\n STORAGE_LOCAL: 'localStorage',\n STORAGE_SESSION: 'sessionStorage',\n // revenue keys\n REVENUE_EVENT: 'revenue_amount',\n REVENUE_PRODUCT_ID: '$productId',\n REVENUE_QUANTITY: '$quantity',\n REVENUE_PRICE: '$price',\n REVENUE_REVENUE_TYPE: '$revenueType',\n AMP_DEVICE_ID_PARAM: 'amp_device_id',\n // url param\n AMP_REFERRER_PARAM: 'amp_referrer',\n // url param for overwriting the document.refer\n\n REFERRER: 'referrer',\n REFERRING_DOMAIN: 'referring_domain',\n // UTM Params\n UTM_SOURCE: 'utm_source',\n UTM_MEDIUM: 'utm_medium',\n UTM_CAMPAIGN: 'utm_campaign',\n UTM_TERM: 'utm_term',\n UTM_CONTENT: 'utm_content',\n ATTRIBUTION_EVENT: '[Amplitude] Attribution Captured',\n TRANSPORT_HTTP: 'http',\n TRANSPORT_BEACON: 'beacon'\n};\n\n/*\n * UTF-8 encoder/decoder\n * http://www.webtoolkit.info/\n */\nvar UTF8 = {\n encode: function encode(s) {\n var utftext = '';\n for (var n = 0; n < s.length; n++) {\n var c = s.charCodeAt(n);\n if (c < 128) {\n utftext += String.fromCharCode(c);\n } else if (c > 127 && c < 2048) {\n utftext += String.fromCharCode(c >> 6 | 192);\n utftext += String.fromCharCode(c & 63 | 128);\n } else {\n utftext += String.fromCharCode(c >> 12 | 224);\n utftext += String.fromCharCode(c >> 6 & 63 | 128);\n utftext += String.fromCharCode(c & 63 | 128);\n }\n }\n return utftext;\n },\n decode: function decode(utftext) {\n var s = '';\n var i = 0;\n var c = 0,\n c1 = 0,\n c2 = 0;\n while (i < utftext.length) {\n c = utftext.charCodeAt(i);\n if (c < 128) {\n s += String.fromCharCode(c);\n i++;\n } else if (c > 191 && c < 224) {\n c1 = utftext.charCodeAt(i + 1);\n s += String.fromCharCode((c & 31) << 6 | c1 & 63);\n i += 2;\n } else {\n c1 = utftext.charCodeAt(i + 1);\n c2 = utftext.charCodeAt(i + 2);\n s += String.fromCharCode((c & 15) << 12 | (c1 & 63) << 6 | c2 & 63);\n i += 3;\n }\n }\n return s;\n }\n};\n\n/* global globalThis */\nvar GlobalScope = function () {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n}();\n\n/*\n * Base64 encoder/decoder\n * http://www.webtoolkit.info/\n */\nvar Base64 = {\n _keyStr: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n encode: function encode(input) {\n try {\n if (GlobalScope.btoa && GlobalScope.atob) {\n return GlobalScope.btoa(unescape(encodeURIComponent(input)));\n }\n } catch (e) {\n //log(e);\n }\n return Base64._encode(input);\n },\n _encode: function _encode(input) {\n var output = '';\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n var i = 0;\n input = UTF8.encode(input);\n while (i < input.length) {\n chr1 = input.charCodeAt(i++);\n chr2 = input.charCodeAt(i++);\n chr3 = input.charCodeAt(i++);\n enc1 = chr1 >> 2;\n enc2 = (chr1 & 3) << 4 | chr2 >> 4;\n enc3 = (chr2 & 15) << 2 | chr3 >> 6;\n enc4 = chr3 & 63;\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n } else if (isNaN(chr3)) {\n enc4 = 64;\n }\n output = output + Base64._keyStr.charAt(enc1) + Base64._keyStr.charAt(enc2) + Base64._keyStr.charAt(enc3) + Base64._keyStr.charAt(enc4);\n }\n return output;\n },\n decode: function decode(input) {\n try {\n if (GlobalScope.btoa && GlobalScope.atob) {\n return decodeURIComponent(escape(GlobalScope.atob(input)));\n }\n } catch (e) {\n //log(e);\n }\n return Base64._decode(input);\n },\n _decode: function _decode(input) {\n var output = '';\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0;\n input = input.replace(/[^A-Za-z0-9+/=]/g, '');\n while (i < input.length) {\n enc1 = Base64._keyStr.indexOf(input.charAt(i++));\n enc2 = Base64._keyStr.indexOf(input.charAt(i++));\n enc3 = Base64._keyStr.indexOf(input.charAt(i++));\n enc4 = Base64._keyStr.indexOf(input.charAt(i++));\n chr1 = enc1 << 2 | enc2 >> 4;\n chr2 = (enc2 & 15) << 4 | enc3 >> 2;\n chr3 = (enc3 & 3) << 6 | enc4;\n output = output + String.fromCharCode(chr1);\n if (enc3 !== 64) {\n output = output + String.fromCharCode(chr2);\n }\n if (enc4 !== 64) {\n output = output + String.fromCharCode(chr3);\n }\n }\n output = UTF8.decode(output);\n return output;\n }\n};\n\n/**\n * toString ref.\n * @private\n */\n\nvar toString = Object.prototype.toString;\n\n/**\n * Return the type of `val`.\n * @private\n * @param {Mixed} val\n * @return {String}\n * @api public\n */\n\nfunction type (val) {\n switch (toString.call(val)) {\n case '[object Date]':\n return 'date';\n case '[object RegExp]':\n return 'regexp';\n case '[object Arguments]':\n return 'arguments';\n case '[object Array]':\n return 'array';\n case '[object Error]':\n return 'error';\n }\n if (val === null) {\n return 'null';\n }\n if (val === undefined) {\n return 'undefined';\n }\n if (val !== val) {\n return 'nan';\n }\n if (val && val.nodeType === 1) {\n return 'element';\n }\n if (typeof Buffer !== 'undefined' && typeof Buffer.isBuffer === 'function' && Buffer.isBuffer(val)) {\n return 'buffer';\n }\n val = val.valueOf ? val.valueOf() : Object.prototype.valueOf.apply(val);\n return _typeof(val);\n}\n\nvar logLevels = {\n DISABLE: 0,\n ERROR: 1,\n WARN: 2,\n INFO: 3\n};\nvar logLevel = logLevels.WARN;\nvar setLogLevel = function setLogLevel(logLevelName) {\n if (Object.prototype.hasOwnProperty.call(logLevels, logLevelName)) {\n logLevel = logLevels[logLevelName];\n }\n};\nvar getLogLevel = function getLogLevel() {\n return logLevel;\n};\nvar log = {\n error: function error(s) {\n if (logLevel >= logLevels.ERROR) {\n _log(s);\n }\n },\n warn: function warn(s) {\n if (logLevel >= logLevels.WARN) {\n _log(s);\n }\n },\n info: function info(s) {\n if (logLevel >= logLevels.INFO) {\n _log(s);\n }\n }\n};\nvar _log = function _log(s) {\n try {\n console.log('[Amplitude] ' + s);\n } catch (e) {\n // console logging not available\n }\n};\nvar isEmptyString = function isEmptyString(str) {\n return !str || str.length === 0;\n};\nvar sessionStorageEnabled = function sessionStorageEnabled() {\n try {\n if (GlobalScope.sessionStorage) {\n return true;\n }\n } catch (e) {\n // sessionStorage disabled\n }\n return false;\n};\n\n// truncate string values in event and user properties so that request size does not get too large\nvar truncate = function truncate(value) {\n if (type(value) === 'array') {\n for (var i = 0; i < value.length; i++) {\n value[i] = truncate(value[i]);\n }\n } else if (type(value) === 'object') {\n for (var key in value) {\n if (key in value) {\n value[key] = truncate(value[key]);\n }\n }\n } else {\n value = _truncateValue(value);\n }\n return value;\n};\nvar _truncateValue = function _truncateValue(value) {\n if (type(value) === 'string') {\n return value.length > Constants.MAX_STRING_LENGTH ? value.substring(0, Constants.MAX_STRING_LENGTH) : value;\n }\n return value;\n};\nvar validateInput = function validateInput(input, name, expectedType) {\n if (type(input) !== expectedType) {\n log.error('Invalid ' + name + ' input type. Expected ' + expectedType + ' but received ' + type(input));\n return false;\n }\n return true;\n};\nvar validateDeviceId = function validateDeviceId(deviceId) {\n if (!validateInput(deviceId, 'deviceId', 'string')) {\n return false;\n }\n if (deviceId.indexOf('.') >= 0) {\n log.error(\"Device IDs may not contain '.' characters. Value will be ignored: \\\"\".concat(deviceId, \"\\\"\"));\n return false;\n }\n return true;\n};\nvar validateTransport = function validateTransport(transport) {\n if (!validateInput(transport, 'transport', 'string')) {\n return false;\n }\n if (transport !== Constants.TRANSPORT_HTTP && transport !== Constants.TRANSPORT_BEACON) {\n log.error(\"transport value must be one of '\".concat(Constants.TRANSPORT_BEACON, \"' or '\").concat(Constants.TRANSPORT_HTTP, \"'\"));\n return false;\n }\n if (transport !== Constants.TRANSPORT_HTTP && typeof navigator !== 'undefined' && !navigator.sendBeacon) {\n log.error(\"browser does not support sendBeacon, so transport must be HTTP\");\n return false;\n }\n return true;\n};\n\n// do some basic sanitization and type checking, also catch property dicts with more than 1000 key/value pairs\nvar validateProperties = function validateProperties(properties) {\n var propsType = type(properties);\n if (propsType !== 'object') {\n log.error('Error: invalid properties format. Expecting Javascript object, received ' + propsType + ', ignoring');\n return {};\n }\n if (Object.keys(properties).length > Constants.MAX_PROPERTY_KEYS) {\n log.error('Error: too many properties (more than 1000), ignoring');\n return {};\n }\n var copy = {}; // create a copy with all of the valid properties\n for (var property in properties) {\n if (!Object.prototype.hasOwnProperty.call(properties, property)) {\n continue;\n }\n\n // validate key\n var key = property;\n var keyType = type(key);\n if (keyType !== 'string') {\n key = String(key);\n log.warn('WARNING: Non-string property key, received type ' + keyType + ', coercing to string \"' + key + '\"');\n }\n\n // validate value\n var value = validatePropertyValue(key, properties[property]);\n if (value === null) {\n continue;\n }\n copy[key] = value;\n }\n return copy;\n};\nvar invalidValueTypes = ['nan', 'function', 'arguments', 'regexp', 'element'];\nvar validatePropertyValue = function validatePropertyValue(key, value) {\n var valueType = type(value);\n if (invalidValueTypes.indexOf(valueType) !== -1) {\n log.warn('WARNING: Property key \"' + key + '\" with invalid value type ' + valueType + ', ignoring');\n value = null;\n } else if (valueType === 'undefined') {\n value = null;\n } else if (valueType === 'error') {\n value = String(value);\n log.warn('WARNING: Property key \"' + key + '\" with value type error, coercing to ' + value);\n } else if (valueType === 'array') {\n // check for nested arrays or objects\n var arrayCopy = [];\n for (var i = 0; i < value.length; i++) {\n var element = value[i];\n var elemType = type(element);\n if (elemType === 'array') {\n log.warn('WARNING: Cannot have ' + elemType + ' nested in an array property value, skipping');\n continue;\n } else if (elemType === 'object') {\n arrayCopy.push(validateProperties(element));\n } else {\n arrayCopy.push(validatePropertyValue(key, element));\n }\n }\n value = arrayCopy;\n } else if (valueType === 'object') {\n value = validateProperties(value);\n }\n return value;\n};\nvar validateGroups = function validateGroups(groups) {\n var groupsType = type(groups);\n if (groupsType !== 'object') {\n log.error('Error: invalid groups format. Expecting Javascript object, received ' + groupsType + ', ignoring');\n return {};\n }\n var copy = {}; // create a copy with all of the valid properties\n for (var group in groups) {\n if (!Object.prototype.hasOwnProperty.call(groups, group)) {\n continue;\n }\n\n // validate key\n var key = group;\n var keyType = type(key);\n if (keyType !== 'string') {\n key = String(key);\n log.warn('WARNING: Non-string groupType, received type ' + keyType + ', coercing to string \"' + key + '\"');\n }\n\n // validate value\n var value = validateGroupName(key, groups[group]);\n if (value === null) {\n continue;\n }\n copy[key] = value;\n }\n return copy;\n};\nvar validateGroupName = function validateGroupName(key, groupName) {\n var groupNameType = type(groupName);\n if (groupNameType === 'string') {\n return groupName;\n }\n if (groupNameType === 'date' || groupNameType === 'number' || groupNameType === 'boolean') {\n groupName = String(groupName);\n log.warn('WARNING: Non-string groupName, received type ' + groupNameType + ', coercing to string \"' + groupName + '\"');\n return groupName;\n }\n if (groupNameType === 'array') {\n // check for nested arrays or objects\n var arrayCopy = [];\n for (var i = 0; i < groupName.length; i++) {\n var element = groupName[i];\n var elemType = type(element);\n if (elemType === 'array' || elemType === 'object') {\n log.warn('WARNING: Skipping nested ' + elemType + ' in array groupName');\n continue;\n } else if (elemType === 'string') {\n arrayCopy.push(element);\n } else if (elemType === 'date' || elemType === 'number' || elemType === 'boolean') {\n element = String(element);\n log.warn('WARNING: Non-string groupName, received type ' + elemType + ', coercing to string \"' + element + '\"');\n arrayCopy.push(element);\n }\n }\n return arrayCopy;\n }\n log.warn('WARNING: Non-string groupName, received type ' + groupNameType + '. Please use strings or array of strings for groupName');\n};\n\n// parses the value of a url param (for example ?gclid=1234&...)\nvar getQueryParam = function getQueryParam(name, query) {\n name = name.replace(/[[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\n var regex = new RegExp('[\\\\?&]' + name + '=([^&#]*)');\n var results = regex.exec(query);\n return results === null ? undefined : decodeURIComponent(results[1].replace(/\\+/g, ' '));\n};\nvar isWebWorkerEnvironment = function isWebWorkerEnvironment() {\n return typeof WorkerGlobalScope !== 'undefined';\n};\nvar validateSessionId = function validateSessionId(sessionId) {\n if (validateInput(sessionId, 'sessionId', 'number') && new Date(sessionId).getTime() > 0) {\n return true;\n }\n log.error(\"sessionId value must in milliseconds since epoch (Unix Timestamp)\");\n return false;\n};\nvar getLocation = function getLocation() {\n return GlobalScope.location;\n};\nvar getHost = function getHost(url) {\n var defaultHostname = GlobalScope.location ? GlobalScope.location.hostname : '';\n if (url) {\n if (typeof document !== 'undefined') {\n var a = document.createElement('a');\n a.href = url;\n return a.hostname || defaultHostname;\n }\n if (typeof URL === 'function') {\n var u = new URL(url);\n return u.hostname || defaultHostname;\n }\n }\n return defaultHostname;\n};\nvar utils = {\n setLogLevel: setLogLevel,\n getLogLevel: getLogLevel,\n logLevels: logLevels,\n log: log,\n isEmptyString: isEmptyString,\n isWebWorkerEnvironment: isWebWorkerEnvironment,\n getQueryParam: getQueryParam,\n sessionStorageEnabled: sessionStorageEnabled,\n truncate: truncate,\n validateGroups: validateGroups,\n validateInput: validateInput,\n validateProperties: validateProperties,\n validateDeviceId: validateDeviceId,\n validateTransport: validateTransport,\n validateSessionId: validateSessionId,\n getLocation: getLocation,\n getHost: getHost\n};\n\nvar get$1 = function get(name) {\n try {\n var ca = document.cookie.split(';');\n var value = null;\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(name) === 0) {\n value = c.substring(name.length, c.length);\n break;\n }\n }\n return value;\n } catch (e) {\n return null;\n }\n};\nvar getAll = function getAll(name) {\n try {\n var cookieArray = document.cookie.split(';').map(function (c) {\n return c.trimStart();\n });\n var values = [];\n var _iterator = _createForOfIteratorHelper(cookieArray),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var cookie = _step.value;\n while (cookie.charAt(0) === ' ') {\n cookie = cookie.substring(1);\n }\n if (cookie.indexOf(name) === 0) {\n values.push(cookie.substring(name.length));\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return values;\n } catch (e) {\n return [];\n }\n};\nvar set$1 = function set(name, value, opts) {\n var expires = value !== null ? opts.expirationDays : -1;\n if (expires) {\n var date = new Date();\n date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);\n expires = date;\n }\n var str = name + '=' + value;\n if (expires) {\n str += '; expires=' + expires.toUTCString();\n }\n str += '; path=/';\n if (opts.domain) {\n str += '; domain=' + opts.domain;\n }\n if (opts.secure) {\n str += '; Secure';\n }\n if (opts.sameSite) {\n str += '; SameSite=' + opts.sameSite;\n }\n document.cookie = str;\n};\nvar getLastEventTime = function getLastEventTime() {\n var cookie = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var strValue = cookie.split('.')[Constants.LAST_EVENT_TIME_INDEX];\n var parsedValue;\n if (strValue) {\n parsedValue = parseInt(strValue, 32);\n }\n if (parsedValue) {\n return parsedValue;\n } else {\n utils.log.warn(\"unable to parse malformed cookie: \".concat(cookie));\n return 0;\n }\n};\nvar sortByEventTime = function sortByEventTime(cookies) {\n return _toConsumableArray(cookies).sort(function (c1, c2) {\n var t1 = getLastEventTime(c1);\n var t2 = getLastEventTime(c2);\n // sort c1 first if its last event time is more recent\n // i.e its event time integer is larger that c2's\n return t2 - t1;\n });\n};\n\n// test that cookies are enabled - navigator.cookiesEnabled yields false positives in IE, need to test directly\nvar areCookiesEnabled = function areCookiesEnabled() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var cookieName = Constants.COOKIE_TEST_PREFIX;\n if (typeof document === 'undefined') {\n return false;\n }\n var _areCookiesEnabled = false;\n try {\n var uid = String(Date.now());\n set$1(cookieName, uid, opts);\n utils.log.info(\"Testing if cookies available\");\n _areCookiesEnabled = get$1(cookieName + '=') === uid;\n } catch (e) {\n utils.log.warn(\"Error thrown when checking for cookies. Reason: \\\"\".concat(e, \"\\\"\"));\n } finally {\n utils.log.info(\"Cleaning up cookies availability test\");\n set$1(cookieName, null, opts);\n }\n return _areCookiesEnabled;\n};\nvar baseCookie = {\n set: set$1,\n get: get$1,\n getAll: getAll,\n getLastEventTime: getLastEventTime,\n sortByEventTime: sortByEventTime,\n areCookiesEnabled: areCookiesEnabled\n};\n\n// A URL safe variation on the the list of Base64 characters\nvar base64Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';\nvar base64Id = function base64Id() {\n var str = '';\n for (var i = 0; i < 22; ++i) {\n str += base64Chars.charAt(Math.floor(Math.random() * 64));\n }\n return str;\n};\n\n// Utility that finds top level domain to write to\nvar topDomain = function topDomain(url) {\n var host = utils.getHost(url);\n var parts = host.split('.');\n var levels = [];\n var cname = '_tldtest_' + base64Id();\n if (utils.isWebWorkerEnvironment()) return '';\n for (var i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n for (var _i = 0; _i < levels.length; ++_i) {\n var domain = levels[_i];\n var opts = {\n domain: '.' + domain\n };\n baseCookie.set(cname, 1, opts);\n if (baseCookie.get(cname)) {\n baseCookie.set(cname, null, opts);\n return domain;\n }\n }\n return '';\n};\n\n/*\n * Cookie data\n */\nvar _options = {\n expirationDays: undefined,\n domain: undefined\n};\nvar reset = function reset() {\n _options = {\n expirationDays: undefined,\n domain: undefined\n };\n};\nvar options = function options(opts) {\n if (arguments.length === 0) {\n return _options;\n }\n opts = opts || {};\n _options.expirationDays = opts.expirationDays;\n _options.secure = opts.secure;\n _options.sameSite = opts.sameSite;\n var domain = !utils.isEmptyString(opts.domain) ? opts.domain : '.' + topDomain(utils.getLocation().href);\n var token = Math.random();\n _options.domain = domain;\n set('amplitude_test', token);\n var stored = get('amplitude_test');\n if (!stored || stored !== token) {\n domain = null;\n }\n remove('amplitude_test');\n _options.domain = domain;\n return _options;\n};\nvar _domainSpecific = function _domainSpecific(name) {\n // differentiate between cookies on different domains\n var suffix = '';\n if (_options.domain) {\n suffix = _options.domain.charAt(0) === '.' ? _options.domain.substring(1) : _options.domain;\n }\n return name + suffix;\n};\nvar get = function get(name) {\n var nameEq = _domainSpecific(name) + '=';\n var value = baseCookie.get(nameEq);\n try {\n if (value) {\n return JSON.parse(Base64.decode(value));\n }\n } catch (e) {\n return null;\n }\n return null;\n};\nvar set = function set(name, value) {\n try {\n baseCookie.set(_domainSpecific(name), Base64.encode(JSON.stringify(value)), _options);\n return true;\n } catch (e) {\n return false;\n }\n};\nvar setRaw = function setRaw(name, value) {\n try {\n baseCookie.set(_domainSpecific(name), value, _options);\n return true;\n } catch (e) {\n return false;\n }\n};\nvar getRaw = function getRaw(name) {\n var nameEq = _domainSpecific(name) + '=';\n return baseCookie.get(nameEq);\n};\nvar remove = function remove(name) {\n try {\n baseCookie.set(_domainSpecific(name), null, _options);\n return true;\n } catch (e) {\n return false;\n }\n};\nvar Cookie = {\n reset: reset,\n options: options,\n get: get,\n set: set,\n remove: remove,\n setRaw: setRaw,\n getRaw: getRaw\n};\n\nvar WorkerStorage = /*#__PURE__*/function () {\n function WorkerStorage() {\n _classCallCheck(this, WorkerStorage);\n this.map = new Map();\n this.length = 0;\n }\n _createClass(WorkerStorage, [{\n key: \"key\",\n value: function key(index) {\n var keys = Array.from(this.map.keys());\n var key = keys[index];\n return this.map.get(key);\n }\n }, {\n key: \"getItem\",\n value: function getItem(key) {\n return this.map.get(key);\n }\n }, {\n key: \"setItem\",\n value: function setItem(key, value) {\n if (!this.map.has(key)) {\n this.length += 1;\n }\n this.map.set(key, value);\n }\n }, {\n key: \"removeItem\",\n value: function removeItem(key) {\n if (this.map.has(key)) {\n this.length -= 1;\n this.map[\"delete\"](key);\n }\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.map.clear();\n this.length = 0;\n }\n }]);\n return WorkerStorage;\n}();\n\n/*\n * Implement localStorage to support Firefox 2-3 and IE 5-7\n */\nvar localStorage;\n{\n // test that Window.localStorage is available and works\n var windowLocalStorageAvailable = function windowLocalStorageAvailable() {\n var uid = new Date();\n var result;\n try {\n GlobalScope.localStorage.setItem(uid, uid);\n result = GlobalScope.localStorage.getItem(uid) === String(uid);\n GlobalScope.localStorage.removeItem(uid);\n return result;\n } catch (e) {\n // localStorage not available\n }\n return false;\n };\n if (windowLocalStorageAvailable()) {\n localStorage = GlobalScope.localStorage;\n } else if (typeof GlobalScope !== 'undefined' && GlobalScope.globalStorage) {\n // Firefox 2-3 use globalStorage\n // See https://developer.mozilla.org/en/dom/storage#globalStorage\n try {\n localStorage = GlobalScope.globalStorage[GlobalScope.location.hostname];\n } catch (e) {\n // Something bad happened...\n }\n } else if (typeof document !== 'undefined') {\n // IE 5-7 use userData\n // See http://msdn.microsoft.com/en-us/library/ms531424(v=vs.85).aspx\n var div = document.createElement('div'),\n attrKey = 'localStorage';\n div.style.display = 'none';\n document.getElementsByTagName('head')[0].appendChild(div);\n if (div.addBehavior) {\n div.addBehavior('#default#userdata');\n localStorage = {\n length: 0,\n setItem: function setItem(k, v) {\n div.load(attrKey);\n if (!div.getAttribute(k)) {\n this.length++;\n }\n div.setAttribute(k, v);\n div.save(attrKey);\n },\n getItem: function getItem(k) {\n div.load(attrKey);\n return div.getAttribute(k);\n },\n removeItem: function removeItem(k) {\n div.load(attrKey);\n if (div.getAttribute(k)) {\n this.length--;\n }\n div.removeAttribute(k);\n div.save(attrKey);\n },\n clear: function clear() {\n div.load(attrKey);\n var i = 0;\n var attr;\n while (attr = div.XMLDocument.documentElement.attributes[i++]) {\n div.removeAttribute(attr.name);\n }\n div.save(attrKey);\n this.length = 0;\n },\n key: function key(k) {\n div.load(attrKey);\n return div.XMLDocument.documentElement.attributes[k];\n }\n };\n div.load(attrKey);\n localStorage.length = div.XMLDocument.documentElement.attributes.length;\n }\n } else if (utils.isWebWorkerEnvironment()) {\n // Web worker\n localStorage = new WorkerStorage();\n }\n if (!localStorage) {\n /* eslint-disable no-unused-vars */\n localStorage = {\n length: 0,\n setItem: function setItem(k, v) {},\n getItem: function getItem(k) {},\n removeItem: function removeItem(k) {},\n clear: function clear() {},\n key: function key(k) {}\n };\n /* eslint-enable no-unused-vars */\n }\n}\n\nvar localStorage$1 = localStorage;\n\n/*\n * Abstraction layer for cookie storage.\n * Uses cookie if available, otherwise fallback to localstorage.\n */\nvar cookieStorage = function cookieStorage() {\n this.storage = null;\n};\ncookieStorage.prototype.getStorage = function (disableCookies) {\n if (this.storage !== null) {\n return this.storage;\n }\n if (!disableCookies && baseCookie.areCookiesEnabled()) {\n this.storage = Cookie;\n } else {\n // if cookies disabled, fallback to localstorage\n // note: localstorage does not persist across subdomains\n var keyPrefix = 'amp_cookiestore_';\n this.storage = {\n _options: {\n expirationDays: undefined,\n domain: undefined,\n secure: false\n },\n reset: function reset() {\n this._options = {\n expirationDays: undefined,\n domain: undefined,\n secure: false\n };\n },\n options: function options(opts) {\n if (arguments.length === 0) {\n return this._options;\n }\n opts = opts || {};\n this._options.expirationDays = opts.expirationDays || this._options.expirationDays;\n // localStorage is specific to subdomains\n this._options.domain = opts.domain || this._options.domain || GlobalScope && GlobalScope.location && GlobalScope.location.hostname;\n return this._options.secure = opts.secure || false;\n },\n get: function get(name) {\n try {\n return JSON.parse(localStorage$1.getItem(keyPrefix + name));\n } catch (e) {} /* eslint-disable-line no-empty */\n return null;\n },\n set: function set(name, value) {\n try {\n localStorage$1.setItem(keyPrefix + name, JSON.stringify(value));\n return true;\n } catch (e) {} /* eslint-disable-line no-empty */\n return false;\n },\n remove: function remove(name) {\n try {\n localStorage$1.removeItem(keyPrefix + name);\n } catch (e) {\n return false;\n }\n }\n };\n }\n return this.storage;\n};\n\nvar _storageOptionExists;\nvar storageOptionExists = (_storageOptionExists = {}, _defineProperty(_storageOptionExists, Constants.STORAGE_COOKIES, true), _defineProperty(_storageOptionExists, Constants.STORAGE_NONE, true), _defineProperty(_storageOptionExists, Constants.STORAGE_LOCAL, true), _defineProperty(_storageOptionExists, Constants.STORAGE_SESSION, true), _storageOptionExists);\n\n/**\n * MetadataStorage involves SDK data persistance\n * storage priority: cookies -> localStorage -> in memory\n * This priority can be overriden by setting the storage options.\n * if in localStorage, unable track users between subdomains\n * if in memory, then memory can't be shared between different tabs\n */\nvar MetadataStorage = /*#__PURE__*/function () {\n function MetadataStorage(_ref) {\n var storageKey = _ref.storageKey,\n disableCookies = _ref.disableCookies,\n domain = _ref.domain,\n secure = _ref.secure,\n sameSite = _ref.sameSite,\n expirationDays = _ref.expirationDays,\n storage = _ref.storage;\n _classCallCheck(this, MetadataStorage);\n this.storageKey = storageKey;\n this.domain = domain;\n this.secure = secure;\n this.sameSite = sameSite;\n this.expirationDays = expirationDays;\n this.cookieDomain = '';\n var loc = utils.getLocation() ? utils.getLocation().href : undefined;\n var writableTopDomain = !disableCookies ? topDomain(loc) : '';\n this.cookieDomain = domain || (writableTopDomain ? '.' + writableTopDomain : null);\n if (storageOptionExists[storage]) {\n this.storage = storage;\n } else {\n var disableCookieStorage = disableCookies || !baseCookie.areCookiesEnabled({\n domain: this.cookieDomain,\n secure: this.secure,\n sameSite: this.sameSite,\n expirationDays: this.expirationDays\n });\n if (disableCookieStorage) {\n this.storage = Constants.STORAGE_LOCAL;\n } else {\n this.storage = Constants.STORAGE_COOKIES;\n }\n }\n }\n _createClass(MetadataStorage, [{\n key: \"getCookieStorageKey\",\n value: function getCookieStorageKey() {\n if (!this.domain) {\n return this.storageKey;\n }\n var suffix = this.domain.charAt(0) === '.' ? this.domain.substring(1) : this.domain;\n return \"\".concat(this.storageKey).concat(suffix ? \"_\".concat(suffix) : '');\n }\n\n /*\n * Data is saved as delimited values rather than JSO to minimize cookie space\n * Should not change order of the items\n */\n }, {\n key: \"save\",\n value: function save(_ref2) {\n var deviceId = _ref2.deviceId,\n userId = _ref2.userId,\n optOut = _ref2.optOut,\n sessionId = _ref2.sessionId,\n lastEventTime = _ref2.lastEventTime,\n eventId = _ref2.eventId,\n identifyId = _ref2.identifyId,\n sequenceNumber = _ref2.sequenceNumber;\n if (this.storage === Constants.STORAGE_NONE) {\n return;\n }\n var value = [deviceId, Base64.encode(userId || ''),\n // used to convert not unicode to alphanumeric since cookies only use alphanumeric\n optOut ? '1' : '', sessionId ? sessionId.toString(32) : '0',\n // generated when instantiated, timestamp (but re-uses session id in cookie if not expired) @TODO clients may want custom session id\n lastEventTime ? lastEventTime.toString(32) : '0',\n // last time an event was set\n eventId ? eventId.toString(32) : '0', identifyId ? identifyId.toString(32) : '0', sequenceNumber ? sequenceNumber.toString(32) : '0'].join('.');\n switch (this.storage) {\n case Constants.STORAGE_SESSION:\n if (GlobalScope.sessionStorage) {\n GlobalScope.sessionStorage.setItem(this.storageKey, value);\n }\n break;\n case Constants.STORAGE_LOCAL:\n localStorage$1.setItem(this.storageKey, value);\n break;\n case Constants.STORAGE_COOKIES:\n this.saveCookie(value);\n break;\n }\n }\n }, {\n key: \"saveCookie\",\n value: function saveCookie(value) {\n baseCookie.set(this.getCookieStorageKey(), value, {\n domain: this.cookieDomain,\n secure: this.secure,\n sameSite: this.sameSite,\n expirationDays: this.expirationDays\n });\n }\n }, {\n key: \"load\",\n value: function load() {\n var _this = this;\n var str;\n if (this.storage === Constants.STORAGE_COOKIES) {\n var cookieKey = this.getCookieStorageKey() + '=';\n var allCookies = baseCookie.getAll(cookieKey);\n if (allCookies.length === 0 || allCookies.length === 1) {\n str = allCookies[0];\n } else {\n // dedup cookies by deleting them all and restoring\n // the one with the most recent event time\n var latestCookie = baseCookie.sortByEventTime(allCookies)[0];\n allCookies.forEach(function () {\n return baseCookie.set(_this.getCookieStorageKey(), null, {});\n });\n this.saveCookie(latestCookie);\n str = baseCookie.get(cookieKey);\n }\n }\n if (!str) {\n str = localStorage$1.getItem(this.storageKey);\n }\n if (!str) {\n try {\n str = GlobalScope.sessionStorage && GlobalScope.sessionStorage.getItem(this.storageKey);\n } catch (e) {\n utils.log.info(\"window.sessionStorage unavailable. Reason: \\\"\".concat(e, \"\\\"\"));\n }\n }\n if (!str) {\n return null;\n }\n var values = str.split('.');\n var userId = null;\n if (values[Constants.USER_ID_INDEX]) {\n try {\n userId = Base64.decode(values[Constants.USER_ID_INDEX]);\n } catch (e) {\n userId = null;\n }\n }\n return {\n deviceId: values[Constants.DEVICE_ID_INDEX],\n userId: userId,\n optOut: values[Constants.OPT_OUT_INDEX] === '1',\n sessionId: parseInt(values[Constants.SESSION_ID_INDEX], 32),\n lastEventTime: parseInt(values[Constants.LAST_EVENT_TIME_INDEX], 32),\n eventId: parseInt(values[Constants.EVENT_ID_INDEX], 32),\n identifyId: parseInt(values[Constants.IDENTIFY_ID_INDEX], 32),\n sequenceNumber: parseInt(values[Constants.SEQUENCE_NUMBER_INDEX], 32)\n };\n }\n\n /**\n * Clears any saved metadata storage\n * @constructor AmplitudeClient\n * @public\n * @return {boolean} True if metadata was cleared, false if none existed\n */\n }, {\n key: \"clear\",\n value: function clear() {\n var str;\n if (this.storage === Constants.STORAGE_COOKIES) {\n str = baseCookie.get(this.getCookieStorageKey() + '=');\n baseCookie.set(this.getCookieStorageKey(), null, {\n domain: this.cookieDomain,\n secure: this.secure,\n sameSite: this.sameSite,\n expirationDays: 0\n });\n }\n if (!str) {\n str = localStorage$1.getItem(this.storageKey);\n localStorage$1.clear();\n }\n if (!str) {\n try {\n str = GlobalScope.sessionStorage && GlobalScope.sessionStorage.getItem(this.storageKey);\n GlobalScope.sessionStorage.clear();\n } catch (e) {\n utils.log.info(\"window.sessionStorage unavailable. Reason: \\\"\".concat(e, \"\\\"\"));\n }\n }\n return !!str;\n }\n }]);\n return MetadataStorage;\n}();\n\nvar getUtmData = function getUtmData(rawCookie, query) {\n // Translate the utmz cookie format into url query string format.\n var cookie = rawCookie ? '?' + rawCookie.split('.').slice(-1)[0].replace(/\\|/g, '&') : '';\n var fetchParam = function fetchParam(queryName, query, cookieName, cookie) {\n return utils.getQueryParam(queryName, query) || utils.getQueryParam(cookieName, cookie);\n };\n var utmSource = fetchParam(Constants.UTM_SOURCE, query, 'utmcsr', cookie);\n var utmMedium = fetchParam(Constants.UTM_MEDIUM, query, 'utmcmd', cookie);\n var utmCampaign = fetchParam(Constants.UTM_CAMPAIGN, query, 'utmccn', cookie);\n var utmTerm = fetchParam(Constants.UTM_TERM, query, 'utmctr', cookie);\n var utmContent = fetchParam(Constants.UTM_CONTENT, query, 'utmcct', cookie);\n var utmData = {};\n var addIfNotNull = function addIfNotNull(key, value) {\n if (!utils.isEmptyString(value)) {\n utmData[key] = value;\n }\n };\n addIfNotNull(Constants.UTM_SOURCE, utmSource);\n addIfNotNull(Constants.UTM_MEDIUM, utmMedium);\n addIfNotNull(Constants.UTM_CAMPAIGN, utmCampaign);\n addIfNotNull(Constants.UTM_TERM, utmTerm);\n addIfNotNull(Constants.UTM_CONTENT, utmContent);\n return utmData;\n};\n\n/*\n * Wrapper for a user properties JSON object that supports operations.\n * Note: if a user property is used in multiple operations on the same Identify object,\n * only the first operation will be saved, and the rest will be ignored.\n */\n\nvar AMP_OP_ADD = '$add';\nvar AMP_OP_APPEND = '$append';\nvar AMP_OP_CLEAR_ALL = '$clearAll';\nvar AMP_OP_PREPEND = '$prepend';\nvar AMP_OP_SET = '$set';\nvar AMP_OP_SET_ONCE = '$setOnce';\nvar AMP_OP_UNSET = '$unset';\nvar AMP_OP_PREINSERT = '$preInsert';\nvar AMP_OP_POSTINSERT = '$postInsert';\nvar AMP_OP_REMOVE = '$remove';\n\n/**\n * Identify API - instance constructor. Identify objects are a wrapper for user property operations.\n * Each method adds a user property operation to the Identify object, and returns the same Identify object,\n * allowing you to chain multiple method calls together.\n * Note: if the same user property is used in multiple operations on a single Identify object,\n * only the first operation on that property will be saved, and the rest will be ignored.\n * @constructor Identify\n * @public\n * @example var identify = new amplitude.Identify();\n */\nvar Identify = function Identify() {\n this.userPropertiesOperations = {};\n this.properties = []; // keep track of keys that have been added\n};\n\n/**\n * Increment a user property by a given value (can also be negative to decrement).\n * If the user property does not have a value set yet, it will be initialized to 0 before being incremented.\n * @public\n * @param {string} property - The user property key.\n * @param {number|string} value - The amount by which to increment the user property. Allows numbers as strings (ex: '123').\n * @return {Identify} Returns the same Identify object, allowing you to chain multiple method calls together.\n * @example var identify = new amplitude.Identify().add('karma', 1).add('friends', 1);\n * amplitude.identify(identify); // send the Identify call\n */\nIdentify.prototype.add = function (property, value) {\n if (type(value) === 'number' || type(value) === 'string') {\n this._addOperation(AMP_OP_ADD, property, value);\n } else {\n utils.log.error('Unsupported type for value: ' + type(value) + ', expecting number or string');\n }\n return this;\n};\n\n/**\n * Append a value or values to a user property.\n * If the user property does not have a value set yet,\n * it will be initialized to an empty list before the new values are appended.\n * If the user property has an existing value and it is not a list,\n * the existing value will be converted into a list with the new values appended.\n * @public\n * @param {string} property - The user property key.\n * @param {number|string|list|object} value - A value or values to append.\n * Values can be numbers, strings, lists, or object (key:value dict will be flattened).\n * @return {Identify} Returns the same Identify object, allowing you to chain multiple method calls together.\n * @example var identify = new amplitude.Identify().append('ab-tests', 'new-user-tests');\n * identify.append('some_list', [1, 2, 3, 4, 'values']);\n * amplitude.identify(identify); // send the Identify call\n */\nIdentify.prototype.append = function (property, value) {\n this._addOperation(AMP_OP_APPEND, property, value);\n return this;\n};\n\n/**\n * Clear all user properties for the current user.\n * SDK user should instead call amplitude.clearUserProperties() instead of using this.\n * $clearAll needs to be sent on its own Identify object. If there are already other operations, then don't add $clearAll.\n * If $clearAll already in an Identify object, don't allow other operations to be added.\n * @private\n */\nIdentify.prototype.clearAll = function () {\n if (Object.keys(this.userPropertiesOperations).length > 0) {\n if (!Object.prototype.hasOwnProperty.call(this.userPropertiesOperations, AMP_OP_CLEAR_ALL)) {\n utils.log.error('Need to send $clearAll on its own Identify object without any other operations, skipping $clearAll');\n }\n return this;\n }\n this.userPropertiesOperations[AMP_OP_CLEAR_ALL] = '-';\n return this;\n};\n\n/**\n * Prepend a value or values to a user property.\n * Prepend means inserting the value or values at the front of a list.\n * If the user property does not have a value set yet,\n * it will be initialized to an empty list before the new values are prepended.\n * If the user property has an existing value and it is not a list,\n * the existing value will be converted into a list with the new values prepended.\n * @public\n * @param {string} property - The user property key.\n * @param {number|string|list|object} value - A value or values to prepend.\n * Values can be numbers, strings, lists, or object (key:value dict will be flattened).\n * @return {Identify} Returns the same Identify object, allowing you to chain multiple method calls together.\n * @example var identify = new amplitude.Identify().prepend('ab-tests', 'new-user-tests');\n * identify.prepend('some_list', [1, 2, 3, 4, 'values']);\n * amplitude.identify(identify); // send the Identify call\n */\nIdentify.prototype.prepend = function (property, value) {\n this._addOperation(AMP_OP_PREPEND, property, value);\n return this;\n};\n\n/**\n * Sets the value of a given user property. If a value already exists, it will be overwriten with the new value.\n * @public\n * @param {string} property - The user property key.\n * @param {number|string|list|boolean|object} value - A value or values to set.\n * Values can be numbers, strings, lists, or object (key:value dict will be flattened).\n * @return {Identify} Returns the same Identify object, allowing you to chain multiple method calls together.\n * @example var identify = new amplitude.Identify().set('user_type', 'beta');\n * identify.set('name', {'first': 'John', 'last': 'Doe'}); // dict is flattened and becomes name.first: John, name.last: Doe\n * amplitude.identify(identify); // send the Identify call\n */\nIdentify.prototype.set = function (property, value) {\n this._addOperation(AMP_OP_SET, property, value);\n return this;\n};\n\n/**\n * Sets the value of a given user property only once. Subsequent setOnce operations on that user property will be ignored;\n * however, that user property can still be modified through any of the other operations.\n * Useful for capturing properties such as 'initial_signup_date', 'initial_referrer', etc.\n * @public\n * @param {string} property - The user property key.\n * @param {number|string|list|boolean|object} value - A value or values to set once.\n * Values can be numbers, strings, lists, or object (key:value dict will be flattened).\n * @return {Identify} Returns the same Identify object, allowing you to chain multiple method calls together.\n * @example var identify = new amplitude.Identify().setOnce('sign_up_date', '2016-04-01');\n * amplitude.identify(identify); // send the Identify call\n */\nIdentify.prototype.setOnce = function (property, value) {\n this._addOperation(AMP_OP_SET_ONCE, property, value);\n return this;\n};\n\n/**\n * Unset and remove a user property. This user property will no longer show up in a user's profile.\n * @public\n * @param {string} property - The user property key.\n * @return {Identify} Returns the same Identify object, allowing you to chain multiple method calls together.\n * @example var identify = new amplitude.Identify().unset('user_type').unset('age');\n * amplitude.identify(identify); // send the Identify call\n */\nIdentify.prototype.unset = function (property) {\n this._addOperation(AMP_OP_UNSET, property, '-');\n return this;\n};\n\n/**\n * Preinsert a value or values to a user property, if it does not exist in the user property already.\n * Preinsert means inserting the value or values to the beginning of the specified user property.\n * If the item already exists in the user property, it will be a no-op.\n * @public\n * @param {string} property - The user property key.\n * @param {number|string|list|object} value - A value or values to insert.\n * @returns {Identify} Returns the same Identify object, allowing you to chain multiple method calls together.\n */\nIdentify.prototype.preInsert = function (property, value) {\n this._addOperation(AMP_OP_PREINSERT, property, value);\n return this;\n};\n\n/**\n * Postinsert a value or values to a user property, if it does not exist in the user property already.\n * Postinsert means inserting the value or values to the beginning of the specified user property.\n * If the item already exists in the user property, it will be a no-op.\n * @param {string} property - The user property key.\n * @param {number|string|list|object} value - A value or values to insert.\n * @returns {Identify} Returns the same Identify object, allowing you to chain multiple method calls together.\n */\nIdentify.prototype.postInsert = function (property, value) {\n this._addOperation(AMP_OP_POSTINSERT, property, value);\n return this;\n};\n\n/**\n * Remove a value or values to a user property, if it does exist in the user property.\n * If the item does not exist in the user property, it will be a no-op.\n * @param {string} property - The user property key.\n * @param {number|string|list|object} value - A value or values to remove.\n * @returns {Identify} Returns the same Identify object, allowing you to chain multiple method calls together.\n */\nIdentify.prototype.remove = function (property, value) {\n this._addOperation(AMP_OP_REMOVE, property, value);\n return this;\n};\n\n/**\n * Helper function that adds operation to the Identify's object\n * Handle's filtering of duplicate user property keys, and filtering for clearAll.\n * @private\n */\nIdentify.prototype._addOperation = function (operation, property, value) {\n // check that the identify doesn't already contain a clearAll\n if (Object.prototype.hasOwnProperty.call(this.userPropertiesOperations, AMP_OP_CLEAR_ALL)) {\n utils.log.error('This identify already contains a $clearAll operation, skipping operation ' + operation);\n return;\n }\n\n // check that property wasn't already used in this Identify\n if (this.properties.indexOf(property) !== -1) {\n utils.log.error('User property \"' + property + '\" already used in this identify, skipping operation ' + operation);\n return;\n }\n if (!Object.prototype.hasOwnProperty.call(this.userPropertiesOperations, operation)) {\n this.userPropertiesOperations[operation] = {};\n }\n this.userPropertiesOperations[operation][property] = value;\n this.properties.push(property);\n};\n\n/*\n * Simple AJAX request object\n */\nvar Request = function Request(url, data, headers) {\n this.url = url;\n this.data = data || {};\n this.headers = headers;\n};\nvar CORS_HEADER = 'Cross-Origin-Resource-Policy';\nfunction setHeaders(xhr, headers) {\n for (var header in headers) {\n if (header === CORS_HEADER && !headers[header]) {\n continue;\n }\n xhr.setRequestHeader(header, headers[header]);\n }\n}\nRequest.prototype.send = function (callback) {\n var isIE = GlobalScope.XDomainRequest ? true : false;\n if (isIE) {\n var xdr = new GlobalScope.XDomainRequest();\n xdr.open('POST', this.url, true);\n xdr.onload = function () {\n callback(200, xdr.responseText);\n };\n xdr.onerror = function () {\n // status code not available from xdr, try string matching on responseText\n if (xdr.responseText === 'Request Entity Too Large') {\n callback(413, xdr.responseText);\n } else {\n callback(500, xdr.responseText);\n }\n };\n xdr.ontimeout = function () {};\n xdr.onprogress = function () {};\n xdr.send(queryString.stringify(this.data));\n } else if (typeof XMLHttpRequest !== 'undefined') {\n var xhr = new XMLHttpRequest();\n xhr.open('POST', this.url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.status, xhr.responseText);\n }\n };\n setHeaders(xhr, this.headers);\n xhr.send(queryString.stringify(this.data));\n } else {\n var responseStatus = undefined;\n fetch(this.url, {\n method: 'POST',\n headers: this.headers,\n body: queryString.stringify(this.data)\n }).then(function (response) {\n responseStatus = response.status;\n return response.text();\n }).then(function (responseText) {\n callback(responseStatus, responseText);\n });\n }\n //log('sent request to ' + this.url + ' with data ' + decodeURIComponent(queryString(this.data)));\n};\n\n/**\n * Revenue API - instance constructor. Wrapper for logging Revenue data. Revenue objects get passed to amplitude.logRevenueV2 to send to Amplitude servers.\n * Each method updates a revenue property in the Revenue object, and returns the same Revenue object,\n * allowing you to chain multiple method calls together.\n *\n * Note: price is a required field to log revenue events.\n * If quantity is not specified then defaults to 1.\n * @constructor Revenue\n * @public\n * @example var revenue = new amplitude.Revenue();\n */\nvar Revenue = function Revenue() {\n // required fields\n this._price = null;\n\n // optional fields\n this._productId = null;\n this._quantity = 1;\n this._revenueType = null;\n this._properties = null;\n};\n\n/**\n * Set a value for the product identifer.\n * @public\n * @param {string} productId - The value for the product identifier. Empty and invalid strings are ignored.\n * @return {Revenue} Returns the same Revenue object, allowing you to chain multiple method calls together.\n * @example var revenue = new amplitude.Revenue().setProductId('productIdentifier').setPrice(10.99);\n * amplitude.logRevenueV2(revenue);\n */\nRevenue.prototype.setProductId = function setProductId(productId) {\n if (type(productId) !== 'string') {\n utils.log.error('Unsupported type for productId: ' + type(productId) + ', expecting string');\n } else if (utils.isEmptyString(productId)) {\n utils.log.error('Invalid empty productId');\n } else {\n this._productId = productId;\n }\n return this;\n};\n\n/**\n * Set a value for the quantity. Note revenue amount is calculated as price * quantity.\n * @public\n * @param {number} quantity - Integer value for the quantity. If not set, quantity defaults to 1.\n * @return {Revenue} Returns the same Revenue object, allowing you to chain multiple method calls together.\n * @example var revenue = new amplitude.Revenue().setProductId('productIdentifier').setPrice(10.99).setQuantity(5);\n * amplitude.logRevenueV2(revenue);\n */\nRevenue.prototype.setQuantity = function setQuantity(quantity) {\n if (type(quantity) !== 'number') {\n utils.log.error('Unsupported type for quantity: ' + type(quantity) + ', expecting number');\n } else {\n this._quantity = parseInt(quantity);\n }\n return this;\n};\n\n/**\n * Set a value for the price. This field is required for all revenue being logged.\n *\n * Note: revenue amount is calculated as price * quantity.\n * @public\n * @param {number} price - Double value for the quantity.\n * @return {Revenue} Returns the same Revenue object, allowing you to chain multiple method calls together.\n * @example var revenue = new amplitude.Revenue().setProductId('productIdentifier').setPrice(10.99);\n * amplitude.logRevenueV2(revenue);\n */\nRevenue.prototype.setPrice = function setPrice(price) {\n if (type(price) !== 'number') {\n utils.log.error('Unsupported type for price: ' + type(price) + ', expecting number');\n } else {\n this._price = price;\n }\n return this;\n};\n\n/**\n * Set a value for the revenueType (for example purchase, cost, tax, refund, etc).\n * @public\n * @param {string} revenueType - RevenueType to designate.\n * @return {Revenue} Returns the same Revenue object, allowing you to chain multiple method calls together.\n * @example var revenue = new amplitude.Revenue().setProductId('productIdentifier').setPrice(10.99).setRevenueType('purchase');\n * amplitude.logRevenueV2(revenue);\n */\nRevenue.prototype.setRevenueType = function setRevenueType(revenueType) {\n if (type(revenueType) !== 'string') {\n utils.log.error('Unsupported type for revenueType: ' + type(revenueType) + ', expecting string');\n } else {\n this._revenueType = revenueType;\n }\n return this;\n};\n\n/**\n * Set event properties for the revenue event.\n * @public\n * @param {object} eventProperties - Revenue event properties to set.\n * @return {Revenue} Returns the same Revenue object, allowing you to chain multiple method calls together.\n * @example var event_properties = {'city': 'San Francisco'};\n * var revenue = new amplitude.Revenue().setProductId('productIdentifier').setPrice(10.99).setEventProperties(event_properties);\n * amplitude.logRevenueV2(revenue);\n */\nRevenue.prototype.setEventProperties = function setEventProperties(eventProperties) {\n if (type(eventProperties) !== 'object') {\n utils.log.error('Unsupported type for eventProperties: ' + type(eventProperties) + ', expecting object');\n } else {\n this._properties = utils.validateProperties(eventProperties);\n }\n return this;\n};\n\n/**\n * @private\n */\nRevenue.prototype._isValidRevenue = function _isValidRevenue() {\n if (type(this._price) !== 'number') {\n utils.log.error('Invalid revenue, need to set price field');\n return false;\n }\n return true;\n};\n\n/**\n * @private\n */\nRevenue.prototype._toJSONObject = function _toJSONObject() {\n var obj = type(this._properties) === 'object' ? this._properties : {};\n if (this._productId !== null) {\n obj[Constants.REVENUE_PRODUCT_ID] = this._productId;\n }\n if (this._quantity !== null) {\n obj[Constants.REVENUE_QUANTITY] = this._quantity;\n }\n if (this._price !== null) {\n obj[Constants.REVENUE_PRICE] = this._price;\n }\n if (this._revenueType !== null) {\n obj[Constants.REVENUE_REVENUE_TYPE] = this._revenueType;\n }\n return obj;\n};\n\n/**\n * Source: [jed's gist]{@link https://gist.github.com/982883}.\n * Returns a random v4 UUID of the form xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx,\n * where each x is replaced with a random hexadecimal digit from 0 to f, and\n * y is replaced with a random hexadecimal digit from 8 to b.\n * Used to generate UUIDs for deviceIds.\n * @private\n */\nvar uuid = function uuid(a) {\n return a // if the placeholder was passed, return\n ?\n // a random number from 0 to 15\n (a ^\n // unless b is 8,\n Math.random() *\n // in which case\n 16 >>\n // a random number from\n a / 4\n // 8 to 11\n ).toString(16) // in hexadecimal\n :\n // or otherwise a concatenated string:\n ([1e7] +\n // 10000000 +\n -1e3 +\n // -1000 +\n -4e3 +\n // -4000 +\n -8e3 +\n // -80000000 +\n -1e11\n // -100000000000,\n ).replace(\n // replacing\n /[018]/g,\n // zeroes, ones, and eights with\n uuid // random hex digits\n );\n};\n\nvar getLanguage = function getLanguage() {\n return typeof navigator !== 'undefined' && (navigator.languages && navigator.languages[0] || navigator.language || navigator.userLanguage) || '';\n};\nvar language = {\n getLanguage: getLanguage\n};\n\n/**\n * AmplitudeServerZone is for Data Residency and handling server zone related properties.\n * The server zones now are US and EU.\n *\n * For usage like sending data to Amplitude's EU servers, you need to configure the serverZone during nitializing.\n */\nvar AmplitudeServerZone = {\n US: 'US',\n EU: 'EU'\n};\nvar getEventLogApi = function getEventLogApi(serverZone) {\n var eventLogUrl = Constants.EVENT_LOG_URL;\n switch (serverZone) {\n case AmplitudeServerZone.EU:\n eventLogUrl = Constants.EVENT_LOG_EU_URL;\n break;\n case AmplitudeServerZone.US:\n eventLogUrl = Constants.EVENT_LOG_URL;\n break;\n }\n return eventLogUrl;\n};\nvar getDynamicConfigApi = function getDynamicConfigApi(serverZone) {\n var dynamicConfigUrl = Constants.DYNAMIC_CONFIG_URL;\n switch (serverZone) {\n case AmplitudeServerZone.EU:\n dynamicConfigUrl = Constants.DYNAMIC_CONFIG_EU_URL;\n break;\n case AmplitudeServerZone.US:\n dynamicConfigUrl = Constants.DYNAMIC_CONFIG_URL;\n break;\n }\n return dynamicConfigUrl;\n};\n\nvar version = \"8.21.9\";\n\n/**\n * Options used when initializing Amplitude\n * @typedef {Object} Options\n * @property {string} [apiEndpoint=`api.amplitude.com`] - Endpoint to send amplitude event requests to.\n * @property {boolean} [batchEvents=`false`] - If `true`, then events are batched together and uploaded only when the number of unsent events is greater than or equal to eventUploadThreshold or after eventUploadPeriodMillis milliseconds have passed since the first unsent event was logged.\n * @property {number} [cookieExpiration=`365`] - The number of days after which the Amplitude cookie will expire. 12 months is for GDPR compliance.\n * @property {string} [cookieName=`amplitude_id`] - *DEPRECATED*\n * @property {string} [sameSiteCookie='None'] - Sets the SameSite flag on the amplitude cookie. Decides cookie privacy policy.\n * @property {boolean} [cookieForceUpgrade=`false`] - Forces pre-v6.0.0 instances to adopt post-v6.0.0 compat cookie formats.\n * @property {boolean} [deferInitialization=`null`] - If `true`, disables the core functionality of the sdk, including saving a cookie and all logging, until explicitly enabled. To enable tracking, please call `amplitude.getInstance().enableTracking()` *Note: This will not affect users who already have an amplitude cookie. The decision to track events is determined by whether or not a user has an amplitude analytics cookie. If the `cookieExpiration</code> is manually defined to be a short lifespan, you may need to run `amplitude.getInstance().enableTracking()` upon the cookie expiring or upon logging in.*\n * @property {boolean} [disableCookies=`false`] - Disable Ampllitude cookies altogether.\n * @property {string} [deviceId=A randomly generated UUID.] - The custom Device ID to set. *Note: This is not recommended unless you know what you are doing (e.g. you have your own system for tracking user devices).*\n * @property {boolean} [deviceIdFromUrlParam=`false`] - If `true`, then the SDK will parse Device ID values from the URL parameter amp_device_id if available. Device IDs defined in the configuration options during init will take priority over Device IDs from URL parameters.\n * @property {string} [domain=The top domain of the current page's URL. ('https://amplitude.com')] - Set a custom domain for the Amplitude cookie. To include subdomains, add a preceding period, eg: `.amplitude.com`.\n * @property {number} [eventUploadPeriodMillis=`30000` (30 sec)] - Amount of time in milliseconds that the SDK waits before uploading events if batchEvents is true.\n * @property {number} [eventUploadThreshold=`30`] - Minimum number of events to batch together per request if batchEvents is true.\n * @property {boolean} [forceHttps=`true`] - If `true`, the events will always be uploaded to HTTPS endpoint. Otherwise, it will use the embedding site's protocol.\n * @property {boolean} [includeFbclid=`false`] - If `true`, captures the fbclid URL parameter as well as the user's initial_fbclid via a setOnce operation.\n * @property {boolean} [includeGclid=`false`] - If `true`, captures the gclid URL parameter as well as the user's initial_gclid via a setOnce operation.\n * @property {boolean} [includeReferrer=`false`] - If `true`, captures the referrer and referring_domain for each session, as well as the user's initial_referrer and initial_referring_domain via a setOnce operation.\n * @property {boolean} [includeUtm=`false`] - If `true`, finds UTM parameters in the query string or the _utmz cookie, parses, and includes them as user properties on all events uploaded. This also captures initial UTM parameters for each session via a setOnce operation.\n * @property {Object} [ingestionMetadata] Ingestion metadata\n * @property {string} [ingestionMetadata.sourceName] source name in ingestion metadata, e.g. \"ampli\"\n * @property {string} [ingestionMetadata.sourceVersion] source version in ingestion metadata, e.g. \"1.0.0\"\n * @property {string} [language=The language determined by the browser] - Custom language to set.\n * @property {Object} [library=`{ name: 'amplitude-js', version: packageJsonVersion }`] - Values for the library version\n * @property {string} [logLevel=`WARN`] - Level of logs to be printed in the developer console. Valid values are 'DISABLE', 'ERROR', 'WARN', 'INFO'. To learn more about the different options, see below.\n * @property {boolean} [logAttributionCapturedEvent=`false`] - If `true`, the SDK will log an Amplitude event anytime new attribution values are captured from the user. **Note: These events count towards your event volume.** Event name being logged: [Amplitude] Attribution Captured. Event Properties that can be logged: `utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`, `referrer`, `referring_domain`, `gclid`, `fbclid`. For UTM properties to be logged, `includeUtm` must be set to `true`. For the `referrer` and `referring_domain` properties to be logged, `includeReferrer` must be set to `true`. For the `gclid` property to be logged, `includeGclid` must be set to `true`. For the `fbclid` property to be logged, `includeFbclid` must be set to `true`.\n * @property {boolean} [optOut=`false`] - Whether or not to disable tracking for the current user.\n * @property {function} [onError=`() => {}`] - Function to call on error.\n * @property {function} [onExitPage=`() => {}`] - Function called when the user exits the browser. Useful logging on page exit.\n * @property {Object} [plan] Tracking plan properties\n * @property {string} [plan.branch] The tracking plan branch name e.g. \"main\"\n * @property {string} [plan.source] The tracking plan source e.g. \"web\"\n * @property {string} [plan.version] The tracking plan version e.g. \"1\", \"15\"\n * @property {string} [plan.versionId] The tracking plan version Id e.g. \"9ec23ba0-275f-468f-80d1-66b88bff9529\"\n * @property {string} [platform=`Web`] - Platform device is running on. Defaults to `Web` (browser, including mobile browsers).\n * @property {number} [savedMaxCount=`1000`] - Maximum number of events to save in localStorage. If more events are logged while offline, then old events are removed.\n * @property {boolean} [saveEvents=`true`] - If `true`, saves events to localStorage and removes them upon successful upload. *Note: Without saving events, events may be lost if the user navigates to another page before the events are uploaded.*\n * @property {boolean} [saveParamsReferrerOncePerSession=`true`] - If `true`, then includeGclid, includeFbclid, includeReferrer, and includeUtm will only track their respective properties once per session. New values that come in during the middle of the user's session will be ignored. Set to false to always capture new values.\n * @property {boolean} [secureCookie=`false`] - If `true`, the amplitude cookie will be set with the Secure flag.\n * @property {number} [sessionTimeout=`30*60*1000` (30 min)] - The time between logged events before a new session starts in milliseconds.\n * @property {string[]} [storage=`''`] - Sets storage strategy. Options are 'cookies', 'localStorage', 'sessionStorage', or `none`. Will override `disableCookies` option\n * @property {Object} [trackingOptions=`{ city: true, country: true, carrier: true, device_manufacturer: true, device_model: true, dma: true, ip_address: true, language: true, os_name: true, os_version: true, platform: true, region: true, version_name: true}`] - Type of data associated with a user.\n * @property {string} [transport=`http`] - Network transport mechanism used to send events. Options are 'http' and 'beacon'.\n * @property {boolean} [unsetParamsReferrerOnNewSession=`false`] - If `false`, the existing `referrer` and `utm_parameter` values will be carried through each new session. If set to `true`, the `referrer` and `utm_parameter` user properties, which include `referrer`, `utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, and `utm_content`, will be set to `null` upon instantiating a new session. Note: This only works if `includeReferrer` or `includeUtm` is set to `true`.\n * @property {string} [unsentKey=`amplitude_unsent`] - localStorage key that stores unsent events.\n * @property {string} [unsentIdentifyKey=`amplitude_unsent_identify`] - localStorage key that stores unsent identifies.\n * @property {number} [uploadBatchSize=`100`] - The maximum number of events to send to the server per request.\n * @property {Object} [headers=`{ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }`] - Headers attached to an event(s) upload network request. Custom header properties are merged with this object.\n * @property {string} [serverZone] - For server zone related configuration, used for server api endpoint and dynamic configuration.\n * @property {boolean} [useDynamicConfig] - Enable dynamic configuration to find best server url for user.\n * @property {boolean} [serverZoneBasedApi] - To update api endpoint with serverZone change or not. For data residency, recommend to enable it unless using own proxy server.\n * @property {number} [sessionId=`null`] - The custom Session ID for the current session. *Note: This is not recommended unless you know what you are doing because the Session ID of a session is utilized for all session metrics in Amplitude.\n * @property {string} [partnerId=`null`] - The partner id value\n */\nvar DEFAULT_OPTIONS = {\n apiEndpoint: Constants.EVENT_LOG_URL,\n batchEvents: false,\n cookieExpiration: 365,\n // 12 months is for GDPR compliance\n cookieName: 'amplitude_id',\n // this is a deprecated option\n sameSiteCookie: 'Lax',\n // cookie privacy policy\n cookieForceUpgrade: false,\n deferInitialization: false,\n disableCookies: false,\n // this is a deprecated option\n deviceIdFromUrlParam: false,\n domain: '',\n eventUploadPeriodMillis: 30 * 1000,\n // 30s\n eventUploadThreshold: 30,\n forceHttps: true,\n includeFbclid: false,\n includeGclid: false,\n includeReferrer: false,\n includeUtm: false,\n ingestionMetadata: {\n sourceName: '',\n sourceVersion: ''\n },\n language: language.getLanguage(),\n library: {\n name: 'amplitude-js',\n version: version\n },\n logLevel: 'WARN',\n logAttributionCapturedEvent: false,\n optOut: false,\n onError: function onError() {},\n onExitPage: function onExitPage() {},\n onNewSessionStart: function onNewSessionStart() {},\n plan: {\n branch: '',\n source: '',\n version: '',\n versionId: ''\n },\n platform: 'Web',\n savedMaxCount: 1000,\n saveEvents: true,\n saveParamsReferrerOncePerSession: true,\n secureCookie: false,\n sessionTimeout: 30 * 60 * 1000,\n storage: Constants.STORAGE_DEFAULT,\n trackingOptions: {\n city: true,\n country: true,\n carrier: true,\n device_manufacturer: true,\n device_model: true,\n dma: true,\n ip_address: true,\n language: true,\n os_name: true,\n os_version: true,\n platform: true,\n region: true,\n version_name: true\n },\n transport: Constants.TRANSPORT_HTTP,\n unsetParamsReferrerOnNewSession: false,\n unsentKey: 'amplitude_unsent',\n unsentIdentifyKey: 'amplitude_unsent_identify',\n uploadBatchSize: 100,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n 'Cross-Origin-Resource-Policy': 'cross-origin'\n },\n serverZone: AmplitudeServerZone.US,\n useDynamicConfig: false,\n serverZoneBasedApi: false,\n sessionId: null,\n partnerId: ''\n};\n\n/**\n * Dynamic Configuration\n * Find the best server url automatically based on app users' geo location.\n */\nvar ConfigManager = /*#__PURE__*/function () {\n function ConfigManager() {\n _classCallCheck(this, ConfigManager);\n if (!ConfigManager.instance) {\n this.ingestionEndpoint = Constants.EVENT_LOG_URL;\n ConfigManager.instance = this;\n }\n return ConfigManager.instance;\n }\n _createClass(ConfigManager, [{\n key: \"refresh\",\n value: function refresh(serverZone, forceHttps, callback) {\n var protocol = 'https';\n if (!forceHttps && 'https:' !== GlobalScope.location.protocol) {\n protocol = 'http';\n }\n var dynamicConfigUrl = protocol + '://' + getDynamicConfigApi(serverZone);\n var self = this;\n var isIE = GlobalScope.XDomainRequest ? true : false;\n if (isIE) {\n var xdr = new GlobalScope.XDomainRequest();\n xdr.open('GET', dynamicConfigUrl, true);\n xdr.onload = function () {\n var response = JSON.parse(xdr.responseText);\n self.ingestionEndpoint = response['ingestionEndpoint'];\n if (callback) {\n callback();\n }\n };\n xdr.onerror = function () {};\n xdr.ontimeout = function () {};\n xdr.onprogress = function () {};\n xdr.send();\n } else {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', dynamicConfigUrl, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4 && xhr.status === 200) {\n var response = JSON.parse(xhr.responseText);\n self.ingestionEndpoint = response['ingestionEndpoint'];\n if (callback) {\n callback();\n }\n }\n };\n xhr.send();\n }\n }\n }]);\n return ConfigManager;\n}();\nvar instance$1 = new ConfigManager();\n\n/**\n * AmplitudeClient SDK API - instance constructor.\n * The Amplitude class handles creation of client instances, all you need to do is call amplitude.getInstance()\n * @constructor AmplitudeClient\n * @public\n * @example var amplitudeClient = new AmplitudeClient();\n */\nvar AmplitudeClient = function AmplitudeClient(instanceName) {\n if (!isBrowserEnv() && !utils.isWebWorkerEnvironment()) {\n utils.log.warn('amplitude-js will not work in a non-browser environment. If you are planning to add Amplitude to a node environment, please use @amplitude/node');\n }\n this._instanceName = utils.isEmptyString(instanceName) ? Constants.DEFAULT_INSTANCE : instanceName.toLowerCase();\n this._unsentEvents = [];\n this._unsentIdentifys = [];\n this.options = _objectSpread2(_objectSpread2({}, DEFAULT_OPTIONS), {}, {\n headers: _objectSpread2({}, DEFAULT_OPTIONS.headers),\n ingestionMetadata: _objectSpread2({}, DEFAULT_OPTIONS.ingestionMetadata),\n library: _objectSpread2({}, DEFAULT_OPTIONS.library),\n plan: _objectSpread2({}, DEFAULT_OPTIONS.plan),\n trackingOptions: _objectSpread2({}, DEFAULT_OPTIONS.trackingOptions)\n });\n this._q = []; // queue for proxied functions before script load\n this._sending = false;\n this._updateScheduled = false;\n this._onInitCallbacks = [];\n this._onNewSessionStartCallbacks = [];\n\n // event meta data\n this._eventId = 0;\n this._identifyId = 0;\n this._lastEventTime = null;\n this._newSession = false;\n // sequence used for by frontend for prioritizing event send retries\n this._sequenceNumber = 0;\n this._sessionId = null;\n this._isInitialized = false;\n\n // used to integrate with experiment SDK (client-side exposure tracking & real-time user properties)\n this._connector = null;\n this._userAgent = typeof navigator !== 'undefined' && navigator && navigator.userAgent || null;\n this._ua = new UAParser(this._userAgent).getResult();\n};\nAmplitudeClient.prototype.Identify = Identify;\nAmplitudeClient.prototype.Revenue = Revenue;\n\n/**\n * Initializes the Amplitude Javascript SDK with your apiKey and any optional configurations.\n * This is required before any other methods can be called.\n * @public\n * @param {string} apiKey - The API key for your app.\n * @param {string} opt_userId - (optional) An identifier for this user.\n * @param {object} opt_config - (optional) Configuration options.\n * See [options.js](https://amplitude.github.io/Amplitude-JavaScript/Options) for a list of options and default values.\n * @param {function} opt_callback - (optional) Provide a callback function to run after initialization is complete.\n * @example amplitudeClient.init('API_KEY', 'USER_ID', {includeReferrer: true, includeUtm: true}, function() { alert('init complete'); });\n */\nAmplitudeClient.prototype.init = function init(apiKey, opt_userId, opt_config, opt_callback) {\n var _this = this;\n if (type(apiKey) !== 'string' || utils.isEmptyString(apiKey)) {\n utils.log.error('Invalid apiKey. Please re-initialize with a valid apiKey');\n return;\n }\n try {\n // used to integrate with experiment SDK (client-side exposure tracking & real-time user properties)\n this._connector = AnalyticsConnector.getInstance(this._instanceName);\n _parseConfig(this.options, opt_config);\n if ((isBrowserEnv() || utils.isWebWorkerEnvironment()) && GlobalScope.Prototype !== undefined && Array.prototype.toJSON) {\n prototypeJsFix();\n utils.log.warn('Prototype.js injected Array.prototype.toJSON. Deleting Array.prototype.toJSON to prevent double-stringify');\n }\n if (this.options.cookieName !== DEFAULT_OPTIONS.cookieName) {\n utils.log.warn('The cookieName option is deprecated. We will be ignoring it for newer cookies');\n }\n if (this.options.serverZoneBasedApi) {\n this.options.apiEndpoint = getEventLogApi(this.options.serverZone);\n }\n this._refreshDynamicConfig();\n this.options.apiKey = apiKey;\n this._storageSuffix = '_' + apiKey + (this._instanceName === Constants.DEFAULT_INSTANCE ? '' : '_' + this._instanceName);\n this._storageSuffixV5 = apiKey.slice(0, 6);\n this._oldCookiename = this.options.cookieName + this._storageSuffix;\n this._unsentKey = this.options.unsentKey + this._storageSuffix;\n this._unsentIdentifyKey = this.options.unsentIdentifyKey + this._storageSuffix;\n this._cookieName = Constants.COOKIE_PREFIX + '_' + this._storageSuffixV5;\n this.cookieStorage = new cookieStorage().getStorage(this.options.disableCookies);\n this.cookieStorage.options({\n expirationDays: this.options.cookieExpiration,\n domain: this.options.domain,\n secure: this.options.secureCookie,\n sameSite: this.options.sameSiteCookie\n });\n this._metadataStorage = new MetadataStorage({\n storageKey: this._cookieName,\n disableCookies: this.options.disableCookies,\n expirationDays: this.options.cookieExpiration,\n domain: this.options.domain,\n secure: this.options.secureCookie,\n sameSite: this.options.sameSiteCookie,\n storage: this.options.storage\n });\n var hasOldCookie = !!this.cookieStorage.get(this._oldCookiename);\n var hasNewCookie = !!this._metadataStorage.load();\n this._useOldCookie = !hasNewCookie && hasOldCookie && !this.options.cookieForceUpgrade;\n var hasCookie = hasNewCookie || hasOldCookie;\n if (this.options.deferInitialization && !hasCookie) {\n this._deferInitialization(apiKey, opt_userId, opt_config, opt_callback);\n return;\n }\n this.options.domain = this.cookieStorage.options().domain;\n if (type(this.options.logLevel) === 'string') {\n utils.setLogLevel(this.options.logLevel);\n }\n var trackingOptions = _generateApiPropertiesTrackingConfig(this);\n this._apiPropertiesTrackingOptions = Object.keys(trackingOptions).length > 0 ? {\n tracking_options: trackingOptions\n } : {};\n if (this.options.cookieForceUpgrade && hasOldCookie) {\n if (!hasNewCookie) {\n _upgradeCookieData(this);\n }\n this.cookieStorage.remove(this._oldCookiename);\n }\n _loadCookieData(this);\n this._pendingReadStorage = true;\n var initFromStorage = function initFromStorage(storedDeviceId) {\n if (opt_config && opt_config.deviceId && !utils.validateDeviceId(opt_config.deviceId)) {\n utils.log.error(\"Invalid device ID rejected. Randomly generated UUID will be used instead of \\\"\".concat(opt_config.deviceId, \"\\\"\"));\n delete opt_config.deviceId;\n }\n _this.options.deviceId = _this._getInitialDeviceId(opt_config && opt_config.deviceId, storedDeviceId);\n _this.options.userId = type(opt_userId) === 'string' && !utils.isEmptyString(opt_userId) && opt_userId || type(opt_userId) === 'number' && opt_userId.toString() || _this.options.userId || null;\n var now = new Date().getTime();\n var startNewSession = !_this._sessionId || !_this._lastEventTime || now - _this._lastEventTime > _this.options.sessionTimeout || _this.options.sessionId;\n if (startNewSession) {\n if (_this.options.unsetParamsReferrerOnNewSession) {\n _this._unsetUTMParams();\n }\n _this._newSession = true;\n _this._sessionId = _this.options.sessionId || now;\n // reset this.options.sessionId to avoid re-usage\n // use instance.getSessionId() to get session id\n _this.options.sessionId = undefined;\n\n // only capture UTM params and referrer if new session\n if (_this.options.saveParamsReferrerOncePerSession) {\n _this._trackParamsAndReferrer();\n }\n }\n if (!_this.options.saveParamsReferrerOncePerSession) {\n _this._trackParamsAndReferrer();\n }\n\n // load unsent events and identifies before any attempt to log new ones\n if (_this.options.saveEvents) {\n _validateUnsentEventQueue(_this._unsentEvents);\n _validateUnsentEventQueue(_this._unsentIdentifys);\n }\n _this._lastEventTime = now;\n _saveCookieData(_this);\n _this._pendingReadStorage = false;\n _this._sendEventsIfReady(); // try sending unsent events\n\n for (var i = 0; i < _this._onInitCallbacks.length; i++) {\n _this._onInitCallbacks[i](_this);\n }\n _this._onInitCallbacks = [];\n _this._isInitialized = true;\n if (startNewSession) {\n _this._runNewSessionStartCallbacks();\n }\n };\n if (this.options.saveEvents) {\n this._unsentEvents = this._loadSavedUnsentEvents(this.options.unsentKey).map(function (event) {\n return {\n event: event\n };\n }).concat(this._unsentEvents);\n this._unsentIdentifys = this._loadSavedUnsentEvents(this.options.unsentIdentifyKey).map(function (event) {\n return {\n event: event\n };\n }).concat(this._unsentIdentifys);\n }\n if (opt_config && opt_config.onNewSessionStart) {\n this.onNewSessionStart(this.options.onNewSessionStart);\n }\n initFromStorage();\n this.runQueuedFunctions();\n if (type(opt_callback) === 'function') {\n opt_callback(this);\n }\n var onExitPage = this.options.onExitPage;\n if (type(onExitPage) === 'function' && GlobalScope.addEventListener) {\n if (!this.pageHandlersAdded) {\n this.pageHandlersAdded = true;\n var handleVisibilityChange = function handleVisibilityChange() {\n var prevTransport = _this.options.transport;\n _this.setTransport(Constants.TRANSPORT_BEACON);\n onExitPage();\n _this.setTransport(prevTransport);\n };\n\n // Monitoring just page exits because that is the most requested feature for now\n // \"If you're specifically trying to detect page unload events, the pagehide event is the best option.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/pagehide_event\n GlobalScope.addEventListener('pagehide', function () {\n handleVisibilityChange();\n }, false);\n }\n }\n\n // Sets an event receiver to receive and forward exposure events from the experiment SDK.\n this._connector.eventBridge.setEventReceiver(function (event) {\n _this._logEvent(event.eventType, event.eventProperties, event.userProperties);\n });\n\n // Set the user ID and device ID in the core identity store to enable fetching variants.\n var editor = this._connector.identityStore.editIdentity();\n if (this.options.deviceId) {\n editor.setDeviceId(this.options.deviceId);\n }\n if (this.options.userId) {\n editor.setUserId(this.options.userId);\n }\n editor.commit();\n } catch (err) {\n utils.log.error(err);\n if (opt_config && type(opt_config.onError) === 'function') {\n opt_config.onError(err);\n }\n }\n};\nAmplitudeClient.prototype._runNewSessionStartCallbacks = function () {\n for (var i = 0; i < this._onNewSessionStartCallbacks.length; i++) {\n this._onNewSessionStartCallbacks[i](this);\n }\n};\nAmplitudeClient.prototype.deleteLowerLevelDomainCookies = function () {\n var host = utils.getHost();\n var cookieHost = this.options.domain && this.options.domain[0] === '.' ? this.options.domain.slice(1) : this.options.domain;\n if (!cookieHost || !utils.isWebWorkerEnvironment()) {\n return;\n }\n if (host !== cookieHost) {\n if (new RegExp(cookieHost + '$').test(host)) {\n var hostParts = host.split('.');\n var cookieHostParts = cookieHost.split('.');\n for (var i = hostParts.length; i > cookieHostParts.length; --i) {\n var deleteDomain = hostParts.slice(hostParts.length - i).join('.');\n baseCookie.set(this._cookieName, null, {\n domain: '.' + deleteDomain\n });\n }\n baseCookie.set(this._cookieName, null, {});\n }\n }\n};\nAmplitudeClient.prototype._getInitialDeviceId = function (configDeviceId, storedDeviceId) {\n if (configDeviceId) {\n return configDeviceId;\n }\n if (this.options.deviceIdFromUrlParam) {\n var deviceIdFromUrlParam = this._getDeviceIdFromUrlParam(this._getUrlParams());\n if (deviceIdFromUrlParam) {\n return deviceIdFromUrlParam;\n }\n }\n if (this.options.deviceId) {\n return this.options.deviceId;\n }\n if (storedDeviceId) {\n return storedDeviceId;\n }\n return base64Id();\n};\n\n// validate properties for unsent events\nvar _validateUnsentEventQueue = function _validateUnsentEventQueue(queue) {\n for (var i = 0; i < queue.length; i++) {\n var userProperties = queue[i].event.user_properties;\n var eventProperties = queue[i].event.event_properties;\n var groups = queue[i].event.groups;\n queue[i].event.user_properties = utils.validateProperties(userProperties);\n queue[i].event.event_properties = utils.validateProperties(eventProperties);\n queue[i].event.groups = utils.validateGroups(groups);\n }\n};\n\n/**\n * @private\n */\nAmplitudeClient.prototype._trackParamsAndReferrer = function _trackParamsAndReferrer() {\n var utmProperties;\n var referrerProperties;\n var gclidProperties;\n var fbclidProperties;\n if (this.options.includeUtm) {\n utmProperties = this._initUtmData();\n }\n if (this.options.includeReferrer) {\n referrerProperties = this._saveReferrer(this._getReferrer());\n }\n if (this.options.includeGclid) {\n gclidProperties = this._saveGclid(this._getUrlParams());\n }\n if (this.options.includeFbclid) {\n fbclidProperties = this._saveFbclid(this._getUrlParams());\n }\n if (this.options.logAttributionCapturedEvent) {\n var attributionProperties = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, utmProperties), referrerProperties), gclidProperties), fbclidProperties);\n if (Object.keys(attributionProperties).length > 0) {\n this.logEvent(Constants.ATTRIBUTION_EVENT, attributionProperties);\n }\n }\n};\n\n/**\n * Parse and validate user specified config values and overwrite existing option value\n * DEFAULT_OPTIONS provides list of all config keys that are modifiable, as well as expected types for values\n * @private\n */\nvar _parseConfig = function _parseConfig(options, config) {\n if (type(config) !== 'object') {\n return;\n }\n\n // Add exception in headers\n var freeFormObjectKeys = new Set(['headers']);\n var zeroAllowedKeys = new Set(['eventUploadPeriodMillis']);\n\n // validates config value is defined, is the correct type, and some additional value sanity checks\n var parseValidateAndLoad = function parseValidateAndLoad(key) {\n if (!Object.prototype.hasOwnProperty.call(options, key)) {\n return; // skip bogus config values\n }\n\n var inputValue = config[key];\n var expectedType = type(options[key]);\n if (key === 'transport' && !utils.validateTransport(inputValue)) {\n return;\n } else if (key === 'sessionId' && inputValue !== null) {\n options[key] = utils.validateSessionId(inputValue) ? inputValue : null;\n return;\n } else if (!utils.validateInput(inputValue, key + ' option', expectedType)) {\n return;\n }\n if (expectedType === 'boolean') {\n options[key] = !!inputValue;\n } else if (expectedType === 'string' && !utils.isEmptyString(inputValue) || expectedType === 'number' && (inputValue > 0 || inputValue === 0 && zeroAllowedKeys.has(key)) || expectedType === 'function') {\n options[key] = inputValue;\n } else if (expectedType === 'object') {\n _parseConfig(options[key], inputValue);\n }\n };\n for (var key in config) {\n if (freeFormObjectKeys.has(key)) {\n options[key] = _objectSpread2(_objectSpread2({}, options[key]), config[key]);\n } else if (Object.prototype.hasOwnProperty.call(config, key)) {\n parseValidateAndLoad(key);\n }\n }\n};\n\n/**\n * Run functions queued up by proxy loading snippet\n * @private\n */\nAmplitudeClient.prototype.runQueuedFunctions = function () {\n var queue = this._q;\n this._q = [];\n for (var i = 0; i < queue.length; i++) {\n var fn = this[queue[i][0]];\n if (type(fn) === 'function') {\n fn.apply(this, queue[i].slice(1));\n }\n }\n};\n\n/**\n * Check that the apiKey is set before calling a function. Logs a warning message if not set.\n * @private\n */\nAmplitudeClient.prototype._apiKeySet = function _apiKeySet(methodName) {\n if (utils.isEmptyString(this.options.apiKey)) {\n utils.log.error('Invalid apiKey. Please set a valid apiKey with init() before calling ' + methodName);\n return false;\n }\n return true;\n};\n\n/**\n * Load saved events from localStorage. JSON deserializes event array. Handles case where string is corrupted.\n * @private\n */\nAmplitudeClient.prototype._loadSavedUnsentEvents = function _loadSavedUnsentEvents(unsentKey) {\n var savedUnsentEventsString = this._getFromStorage(localStorage$1, unsentKey);\n var unsentEvents = this._parseSavedUnsentEventsString(savedUnsentEventsString, unsentKey);\n this._setInStorage(localStorage$1, unsentKey, JSON.stringify(unsentEvents));\n return unsentEvents;\n};\n\n/**\n * Load saved events from localStorage. JSON deserializes event array. Handles case where string is corrupted.\n * @private\n */\nAmplitudeClient.prototype._parseSavedUnsentEventsString = function _parseSavedUnsentEventsString(savedUnsentEventsString, unsentKey) {\n if (utils.isEmptyString(savedUnsentEventsString)) {\n return []; // new app, does not have any saved events\n }\n\n if (type(savedUnsentEventsString) === 'string') {\n try {\n var events = JSON.parse(savedUnsentEventsString);\n if (type(events) === 'array') {\n // handle case where JSON dumping of unsent events is corrupted\n return events;\n }\n } catch (e) {} /* eslint-disable-line no-empty */\n }\n\n utils.log.error('Unable to load ' + unsentKey + ' events. Restart with a new empty queue.');\n return [];\n};\n\n/**\n * Returns true if a new session was created during initialization, otherwise false.\n * @public\n * @return {boolean} Whether a new session was created during initialization.\n */\nAmplitudeClient.prototype.isNewSession = function isNewSession() {\n return this._newSession;\n};\n\n/**\n * Add callbacks to call after init. Useful for users who load Amplitude through a snippet.\n * @public\n */\nAmplitudeClient.prototype.onInit = function onInit(callback) {\n if (this._isInitialized) {\n callback(this);\n } else {\n this._onInitCallbacks.push(callback);\n }\n};\n\n/**\n * Add callbacks to call after new session start.\n * @public\n */\nAmplitudeClient.prototype.onNewSessionStart = function onNewSessionStart(callback) {\n this._onNewSessionStartCallbacks.push(callback);\n};\n\n/**\n * Returns the id of the current session.\n * @public\n * @return {number} Id of the current session.\n */\nAmplitudeClient.prototype.getSessionId = function getSessionId() {\n return this._sessionId;\n};\n\n/**\n * Increments the eventId and returns it.\n * @private\n */\nAmplitudeClient.prototype.nextEventId = function nextEventId() {\n this._eventId++;\n return this._eventId;\n};\n\n/**\n * Increments the identifyId and returns it.\n * @private\n */\nAmplitudeClient.prototype.nextIdentifyId = function nextIdentifyId() {\n this._identifyId++;\n return this._identifyId;\n};\n\n/**\n * Increments the sequenceNumber and returns it.\n * @private\n */\nAmplitudeClient.prototype.nextSequenceNumber = function nextSequenceNumber() {\n this._sequenceNumber++;\n return this._sequenceNumber;\n};\n\n/**\n * Returns the total count of unsent events and identifys\n * @private\n */\nAmplitudeClient.prototype._unsentCount = function _unsentCount() {\n return this._unsentEvents.length + this._unsentIdentifys.length;\n};\n\n/**\n * Send events if ready. Returns true if events are sent.\n * @private\n */\nAmplitudeClient.prototype._sendEventsIfReady = function _sendEventsIfReady() {\n if (this._unsentCount() === 0) {\n return false;\n }\n\n // if batching disabled, send any unsent events immediately\n if (!this.options.batchEvents) {\n this.sendEvents();\n return true;\n }\n\n // if batching enabled, check if min threshold met for batch size\n if (this._unsentCount() >= this.options.eventUploadThreshold) {\n this.sendEvents();\n return true;\n }\n\n // if beacon transport is activated, send events immediately\n // because there is no way to retry them later\n if (this.options.transport === Constants.TRANSPORT_BEACON) {\n this.sendEvents();\n return true;\n }\n\n // otherwise schedule an upload after 30s\n if (!this._updateScheduled) {\n // make sure we only schedule 1 upload\n this._updateScheduled = true;\n setTimeout(function () {\n this._updateScheduled = false;\n this.sendEvents();\n }.bind(this), this.options.eventUploadPeriodMillis);\n }\n return false; // an upload was scheduled, no events were uploaded\n};\n\n/**\n * Clears any stored events and metadata. Storage is then re-created on next event sending.\n * @public\n * @return {boolean} True if metadata was cleared, false if none existed\n */\nAmplitudeClient.prototype.clearStorage = function clearStorage() {\n return this._metadataStorage.clear();\n};\n\n/**\n * Helper function to fetch values from storage\n * Storage argument allows for localStoraoge and sessionStoraoge\n * @private\n */\nAmplitudeClient.prototype._getFromStorage = function _getFromStorage(storage, key) {\n return storage.getItem(key + this._storageSuffix);\n};\n\n/**\n * Helper function to set values in storage\n * Storage argument allows for localStoraoge and sessionStoraoge\n * @private\n */\nAmplitudeClient.prototype._setInStorage = function _setInStorage(storage, key, value) {\n storage.setItem(key + this._storageSuffix, value);\n};\n\n/**\n * Fetches deviceId, userId, event meta data from amplitude cookie\n * @private\n */\nvar _loadCookieData = function _loadCookieData(scope) {\n if (!scope._useOldCookie) {\n var props = scope._metadataStorage.load();\n if (type(props) === 'object') {\n _loadCookieDataProps(scope, props);\n }\n return;\n }\n var cookieData = scope.cookieStorage.get(scope._oldCookiename);\n if (type(cookieData) === 'object') {\n _loadCookieDataProps(scope, cookieData);\n return;\n }\n};\nvar _upgradeCookieData = function _upgradeCookieData(scope) {\n var cookieData = scope.cookieStorage.get(scope._oldCookiename);\n if (type(cookieData) === 'object') {\n _loadCookieDataProps(scope, cookieData);\n _saveCookieData(scope);\n }\n};\nvar _loadCookieDataProps = function _loadCookieDataProps(scope, cookieData) {\n if (cookieData.deviceId) {\n scope.options.deviceId = cookieData.deviceId;\n }\n if (cookieData.userId) {\n scope.options.userId = cookieData.userId;\n }\n if (cookieData.optOut !== null && cookieData.optOut !== undefined) {\n // Do not clobber config opt out value if cookieData has optOut as false\n if (cookieData.optOut !== false) {\n scope.options.optOut = cookieData.optOut;\n }\n }\n if (cookieData.sessionId) {\n scope._sessionId = parseInt(cookieData.sessionId, 10);\n }\n if (cookieData.lastEventTime) {\n scope._lastEventTime = parseInt(cookieData.lastEventTime, 10);\n }\n if (cookieData.eventId) {\n scope._eventId = parseInt(cookieData.eventId, 10);\n }\n if (cookieData.identifyId) {\n scope._identifyId = parseInt(cookieData.identifyId, 10);\n }\n if (cookieData.sequenceNumber) {\n scope._sequenceNumber = parseInt(cookieData.sequenceNumber, 10);\n }\n};\n\n/**\n * Saves deviceId, userId, event meta data to amplitude cookie\n * @private\n */\nvar _saveCookieData = function _saveCookieData(scope) {\n var cookieData = {\n deviceId: scope.options.deviceId,\n userId: scope.options.userId,\n optOut: scope.options.optOut,\n sessionId: scope._sessionId,\n lastEventTime: scope._lastEventTime,\n eventId: scope._eventId,\n identifyId: scope._identifyId,\n sequenceNumber: scope._sequenceNumber\n };\n if (scope._useOldCookie) {\n scope.cookieStorage.set(scope.options.cookieName + scope._storageSuffix, cookieData);\n } else {\n scope._metadataStorage.save(cookieData);\n }\n};\n\n/**\n * Parse the utm properties out of cookies and query for adding to user properties.\n * @private\n */\nAmplitudeClient.prototype._initUtmData = function _initUtmData(queryParams, cookieParams) {\n queryParams = queryParams || this._getUrlParams();\n cookieParams = cookieParams || this.cookieStorage.get('__utmz');\n var utmProperties = getUtmData(cookieParams, queryParams);\n _sendParamsReferrerUserProperties(this, utmProperties);\n return utmProperties;\n};\n\n/**\n * Unset the utm params from the Amplitude instance and update the identify.\n * @private\n */\nAmplitudeClient.prototype._unsetUTMParams = function _unsetUTMParams() {\n var identify = new Identify();\n identify.unset(Constants.REFERRER);\n identify.unset(Constants.REFERRING_DOMAIN);\n identify.unset(Constants.UTM_SOURCE);\n identify.unset(Constants.UTM_MEDIUM);\n identify.unset(Constants.UTM_CAMPAIGN);\n identify.unset(Constants.UTM_TERM);\n identify.unset(Constants.UTM_CONTENT);\n this.identify(identify);\n};\n\n/**\n * The calling function should determine when it is appropriate to send these user properties. This function\n * will no longer contain any session storage checking logic.\n * @private\n */\nvar _sendParamsReferrerUserProperties = function _sendParamsReferrerUserProperties(scope, userProperties) {\n if (type(userProperties) !== 'object' || Object.keys(userProperties).length === 0) {\n return;\n }\n\n // setOnce the initial user properties\n var identify = new Identify();\n for (var key in userProperties) {\n if (Object.prototype.hasOwnProperty.call(userProperties, key)) {\n identify.setOnce('initial_' + key, userProperties[key]);\n identify.set(key, userProperties[key]);\n }\n }\n scope.identify(identify);\n};\n\n/**\n * @private\n */\nAmplitudeClient.prototype._getReferrer = function _getReferrer() {\n var urlRefer = this._getReferrerFromUrlParam(this._getUrlParams());\n if (urlRefer) return urlRefer;else return typeof document !== 'undefined' ? document.referrer : '';\n};\n\n/**\n * @private\n */\nAmplitudeClient.prototype._getUrlParams = function _getUrlParams() {\n return GlobalScope.location.search;\n};\n\n/**\n * Try to fetch Google Gclid from url params.\n * @private\n */\nAmplitudeClient.prototype._saveGclid = function _saveGclid(urlParams) {\n var gclid = utils.getQueryParam('gclid', urlParams);\n if (utils.isEmptyString(gclid)) {\n return;\n }\n var gclidProperties = {\n gclid: gclid\n };\n _sendParamsReferrerUserProperties(this, gclidProperties);\n return gclidProperties;\n};\n\n/**\n * Try to fetch Facebook Fbclid from url params.\n * @private\n */\nAmplitudeClient.prototype._saveFbclid = function _saveFbclid(urlParams) {\n var fbclid = utils.getQueryParam('fbclid', urlParams);\n if (utils.isEmptyString(fbclid)) {\n return;\n }\n var fbclidProperties = {\n fbclid: fbclid\n };\n _sendParamsReferrerUserProperties(this, fbclidProperties);\n return fbclidProperties;\n};\n\n/**\n * Try to fetch Amplitude device id from url params.\n * @private\n */\nAmplitudeClient.prototype._getDeviceIdFromUrlParam = function _getDeviceIdFromUrlParam(urlParams) {\n return utils.getQueryParam(Constants.AMP_DEVICE_ID_PARAM, urlParams);\n};\n\n/**\n * Try to fetch referrer from url params.\n * @private\n */\nAmplitudeClient.prototype._getReferrerFromUrlParam = function _getReferrerFromUrlParam(urlParams) {\n return utils.getQueryParam(Constants.AMP_REFERRER_PARAM, urlParams);\n};\n\n/**\n * Parse the domain from referrer info\n * @private\n */\nAmplitudeClient.prototype._getReferringDomain = function _getReferringDomain(referrer) {\n if (utils.isEmptyString(referrer)) {\n return null;\n }\n var parts = referrer.split('/');\n if (parts.length >= 3) {\n return parts[2];\n }\n return null;\n};\n\n/**\n * Fetch the referrer information, parse the domain and send.\n * Since user properties are propagated on the server, only send once per session, don't need to send with every event\n * @private\n */\nAmplitudeClient.prototype._saveReferrer = function _saveReferrer(referrer) {\n if (utils.isEmptyString(referrer)) {\n return;\n }\n var referrerInfo = {\n referrer: referrer,\n referring_domain: this._getReferringDomain(referrer)\n };\n _sendParamsReferrerUserProperties(this, referrerInfo);\n return referrerInfo;\n};\n\n/**\n * Saves unsent events and identifies to localStorage. JSON stringifies event queues before saving.\n * Note: this is called automatically every time events are logged, unless you explicitly set option saveEvents to false.\n * @private\n */\nAmplitudeClient.prototype.saveEvents = function saveEvents() {\n try {\n var serializedUnsentEvents = JSON.stringify(this._unsentEvents.map(function (_ref) {\n var event = _ref.event;\n return event;\n }));\n this._setInStorage(localStorage$1, this.options.unsentKey, serializedUnsentEvents);\n } catch (e) {} /* eslint-disable-line no-empty */\n\n try {\n var serializedIdentifys = JSON.stringify(this._unsentIdentifys.map(function (unsentIdentify) {\n return unsentIdentify.event;\n }));\n this._setInStorage(localStorage$1, this.options.unsentIdentifyKey, serializedIdentifys);\n } catch (e) {} /* eslint-disable-line no-empty */\n};\n\n/**\n * Sets a customer domain for the amplitude cookie. Useful if you want to support cross-subdomain tracking.\n * @public\n * @param {string} domain to set.\n * @example amplitudeClient.setDomain('.amplitude.com');\n */\nAmplitudeClient.prototype.setDomain = function setDomain(domain) {\n if (this._shouldDeferCall()) {\n return this._q.push(['setDomain'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n if (!utils.validateInput(domain, 'domain', 'string')) {\n return;\n }\n try {\n this.cookieStorage.options({\n expirationDays: this.options.cookieExpiration,\n secure: this.options.secureCookie,\n domain: domain,\n sameSite: this.options.sameSiteCookie\n });\n this.options.domain = this.cookieStorage.options().domain;\n _loadCookieData(this);\n _saveCookieData(this);\n } catch (e) {\n utils.log.error(e);\n }\n};\n\n/**\n * Sets an identifier for the current user.\n * @public\n * @param {string} userId - identifier to set. Can be null.\n * @param {boolean} startNewSession - (optional) if start a new session or not\n * @example amplitudeClient.setUserId('joe@gmail.com');\n */\nAmplitudeClient.prototype.setUserId = function setUserId(userId) {\n var startNewSession = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!utils.validateInput(startNewSession, 'startNewSession', 'boolean')) {\n return;\n }\n if (this._shouldDeferCall()) {\n return this._q.push(['setUserId'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n try {\n this.options.userId = userId !== undefined && userId !== null && '' + userId || null;\n if (startNewSession) {\n if (this.options.unsetParamsReferrerOnNewSession) {\n this._unsetUTMParams();\n }\n this._newSession = true;\n this._sessionId = new Date().getTime();\n this._runNewSessionStartCallbacks();\n\n // only capture UTM params and referrer if new session\n if (this.options.saveParamsReferrerOncePerSession) {\n this._trackParamsAndReferrer();\n }\n }\n _saveCookieData(this);\n\n // Update core identity store to propagate new user info\n // to experiment SDK and trigger a fetch if the ID has changed.\n if (this._connector) {\n this._connector.identityStore.editIdentity().setUserId(this.options.userId).commit();\n }\n } catch (e) {\n utils.log.error(e);\n }\n};\n\n/**\n * Add user to a group or groups. You need to specify a groupType and groupName(s).\n *\n * For example you can group people by their organization.\n * In that case, groupType is \"orgId\" and groupName would be the actual ID(s).\n * groupName can be a string or an array of strings to indicate a user in multiple gruups.\n * You can also call setGroup multiple times with different groupTypes to track multiple types of groups (up to 5 per app).\n *\n * Note: this will also set groupType: groupName as a user property.\n * See the [advanced topics article](https://developers.amplitude.com/docs/javascript#user-groups) for more information.\n * @public\n * @param {string} groupType - the group type (ex: orgId)\n * @param {string|list} groupName - the name of the group (ex: 15), or a list of names of the groups\n * @example amplitudeClient.setGroup('orgId', 15); // this adds the current user to orgId 15.\n */\nAmplitudeClient.prototype.setGroup = function (groupType, groupName) {\n if (this._shouldDeferCall()) {\n return this._q.push(['setGroup'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n if (!this._apiKeySet('setGroup()') || !utils.validateInput(groupType, 'groupType', 'string') || utils.isEmptyString(groupType)) {\n return;\n }\n var groups = {};\n groups[groupType] = groupName;\n var identify = new Identify().set(groupType, groupName);\n this._logEvent(Constants.IDENTIFY_EVENT, null, null, identify.userPropertiesOperations, groups, null, null, null);\n};\n\n/**\n * Sets whether to opt current user out of tracking.\n * @public\n * @param {boolean} enable - if true then no events will be logged or sent.\n * @example: amplitude.setOptOut(true);\n */\nAmplitudeClient.prototype.setOptOut = function setOptOut(enable) {\n if (this._shouldDeferCall()) {\n return this._q.push(['setOptOut'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n if (!utils.validateInput(enable, 'enable', 'boolean')) {\n return;\n }\n try {\n this.options.optOut = enable;\n _saveCookieData(this);\n } catch (e) {\n utils.log.error(e);\n }\n};\n\n/**\n * Set a custom Session ID for the current session.\n * Note: This is not recommended unless you know what you are doing because the Session ID of a session is utilized for all session metrics in Amplitude.\n * The Session ID to set for the current session must be in milliseconds since epoch (Unix Timestamp).\n * @public\n * @param {int} sessionId to set.\n * @example amplitudeClient.setSessionId(1622158968000);\n */\nAmplitudeClient.prototype.setSessionId = function setSessionId(sessionId) {\n if (!utils.validateInput(sessionId, 'sessionId', 'number')) {\n return;\n }\n try {\n this._sessionId = sessionId;\n _saveCookieData(this);\n } catch (e) {\n utils.log.error(e);\n }\n};\n\n/**\n * Sets the current Unix timestamp as the new Session ID for the instance.\n * @public\n * @example amplitudeClient.resetSessionId();\n */\nAmplitudeClient.prototype.resetSessionId = function resetSessionId() {\n this.setSessionId(new Date().getTime());\n};\n\n/**\n * Regenerates a new random deviceId for current user. Note: this is not recommended unless you know what you\n * are doing. This can be used in conjunction with `setUserId(null)` to anonymize users after they log out.\n * With a null userId and a completely new deviceId, the current user would appear as a brand new user in dashboard.\n * This uses src/uuid.js to regenerate the deviceId.\n * @public\n */\nAmplitudeClient.prototype.regenerateDeviceId = function regenerateDeviceId() {\n if (this._shouldDeferCall()) {\n return this._q.push(['regenerateDeviceId'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n this.setDeviceId(base64Id());\n};\n\n/**\n * Sets a custom deviceId for current user. **Values may not have `.` inside them**\n * Note: this is not recommended unless you know what you are doing (like if you have your own system for managing deviceIds).\n * Make sure the deviceId you set is sufficiently unique\n * (we recommend something like a UUID - see src/uuid.js for an example of how to generate) to prevent conflicts with other devices in our system.\n * @public\n * @param {string} deviceId - custom deviceId for current user.\n * @example amplitudeClient.setDeviceId('45f0954f-eb79-4463-ac8a-233a6f45a8f0');\n */\nAmplitudeClient.prototype.setDeviceId = function setDeviceId(deviceId) {\n if (this._shouldDeferCall()) {\n return this._q.push(['setDeviceId'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n if (!utils.validateDeviceId(deviceId)) {\n return;\n }\n try {\n if (!utils.isEmptyString(deviceId)) {\n this.options.deviceId = '' + deviceId;\n _saveCookieData(this);\n\n // Update core identity store to propagate new user info\n // to experiment SDK and trigger a fetch if the ID has changed.\n if (this._connector) {\n this._connector.identityStore.editIdentity().setDeviceId(this.options.deviceId).commit();\n }\n }\n } catch (e) {\n utils.log.error(e);\n }\n};\n\n/**\n * Sets the network transport type for events. Typically used to set to 'beacon'\n * on an end-of-lifecycle event handler such as `onpagehide` or `onvisibilitychange`\n * @public\n * @param {string} transport - transport mechanism to use for events. Must be one of `http` or `beacon`.\n * @example amplitudeClient.setTransport('beacon');\n */\nAmplitudeClient.prototype.setTransport = function setTransport(transport) {\n if (this._shouldDeferCall()) {\n return this._q.push(['setTransport'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n if (!utils.validateTransport(transport)) {\n return;\n }\n this.options.transport = transport;\n};\n\n/**\n * Sets user properties for the current user.\n * @public\n * @param {object} - object with string keys and values for the user properties to set.\n * @param {boolean} - DEPRECATED opt_replace: in earlier versions of the JS SDK the user properties object was kept in\n * memory and replace = true would replace the object in memory. Now the properties are no longer stored in memory, so replace is deprecated.\n * @example amplitudeClient.setUserProperties({'gender': 'female', 'sign_up_complete': true})\n */\nAmplitudeClient.prototype.setUserProperties = function setUserProperties(userProperties) {\n if (this._shouldDeferCall()) {\n return this._q.push(['setUserProperties'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n if (!this._apiKeySet('setUserProperties()') || !utils.validateInput(userProperties, 'userProperties', 'object')) {\n return;\n }\n // sanitize the userProperties dict before converting into identify\n var sanitized = utils.truncate(utils.validateProperties(userProperties));\n if (Object.keys(sanitized).length === 0) {\n return;\n }\n\n // convert userProperties into an identify call\n var identify = new Identify();\n for (var property in sanitized) {\n if (Object.prototype.hasOwnProperty.call(sanitized, property)) {\n identify.set(property, sanitized[property]);\n }\n }\n this.identify(identify);\n};\n\n/**\n * Clear all of the user properties for the current user. Note: clearing user properties is irreversible!\n * @public\n * @example amplitudeClient.clearUserProperties();\n */\nAmplitudeClient.prototype.clearUserProperties = function clearUserProperties() {\n if (this._shouldDeferCall()) {\n return this._q.push(['clearUserProperties'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n if (!this._apiKeySet('clearUserProperties()')) {\n return;\n }\n var identify = new Identify();\n identify.clearAll();\n this.identify(identify);\n};\n\n/**\n * Applies the proxied functions on the proxied object to an instance of the real object.\n * Used to convert proxied Identify and Revenue objects.\n * @private\n */\nvar _convertProxyObjectToRealObject = function _convertProxyObjectToRealObject(instance, proxy) {\n for (var i = 0; i < proxy._q.length; i++) {\n var fn = instance[proxy._q[i][0]];\n if (type(fn) === 'function') {\n fn.apply(instance, proxy._q[i].slice(1));\n }\n }\n return instance;\n};\n\n/**\n * Send an identify call containing user property operations to Amplitude servers.\n * See the [Identify](https://amplitude.github.io/Amplitude-JavaScript/Identify/)\n * reference page for more information on the Identify API and user property operations.\n * @param {Identify} identify_obj - the Identify object containing the user property operations to send.\n * @param {Amplitude~eventCallback} opt_callback - (optional) callback function to run when the identify event has been sent.\n * Note: the server response code and response body from the identify event upload are passed to the callback function.\n * @param {Amplitude~eventCallback} opt_error_callback - (optional) a callback function to run after the event logging\n * fails. The failure can be from the request being malformed or from a network failure\n * Note: the server response code and response body from the event upload are passed to the callback function.\n * @example\n * var identify = new amplitude.Identify().set('colors', ['rose', 'gold']).add('karma', 1).setOnce('sign_up_date', '2016-03-31');\n * amplitude.identify(identify);\n */\nAmplitudeClient.prototype.identify = function (identify_obj, opt_callback, opt_error_callback, outOfSession) {\n if (this._shouldDeferCall()) {\n return this._q.push(['identify'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n if (!this._apiKeySet('identify()')) {\n _logErrorsWithCallbacks(opt_callback, opt_error_callback, 0, 'No request sent', {\n reason: 'API key is not set'\n });\n return;\n }\n\n // if identify input is a proxied object created by the async loading snippet, convert it into an identify object\n if (type(identify_obj) === 'object' && Object.prototype.hasOwnProperty.call(identify_obj, '_q')) {\n identify_obj = _convertProxyObjectToRealObject(new Identify(), identify_obj);\n }\n if (identify_obj instanceof Identify) {\n // only send if there are operations\n if (Object.keys(identify_obj.userPropertiesOperations).length > 0) {\n return this._logEvent(Constants.IDENTIFY_EVENT, null, null, identify_obj.userPropertiesOperations, null, null, null, opt_callback, opt_error_callback, outOfSession);\n } else {\n _logErrorsWithCallbacks(opt_callback, opt_error_callback, 0, 'No request sent', {\n reason: 'No user property operations'\n });\n }\n } else {\n utils.log.error('Invalid identify input type. Expected Identify object but saw ' + type(identify_obj));\n _logErrorsWithCallbacks(opt_callback, opt_error_callback, 0, 'No request sent', {\n reason: 'Invalid identify input type'\n });\n }\n};\nAmplitudeClient.prototype.groupIdentify = function (group_type, group_name, identify_obj, opt_callback, opt_error_callback, outOfSession) {\n if (this._shouldDeferCall()) {\n return this._q.push(['groupIdentify'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n if (!this._apiKeySet('groupIdentify()')) {\n _logErrorsWithCallbacks(opt_callback, opt_error_callback, 0, 'No request sent', {\n reason: 'API key is not set'\n });\n return;\n }\n if (!utils.validateInput(group_type, 'group_type', 'string') || utils.isEmptyString(group_type)) {\n _logErrorsWithCallbacks(opt_callback, opt_error_callback, 0, 'No request sent', {\n reason: 'Invalid group type'\n });\n return;\n }\n if (group_name === null || group_name === undefined) {\n _logErrorsWithCallbacks(opt_callback, opt_error_callback, 0, 'No request sent', {\n reason: 'Invalid group name'\n });\n return;\n }\n\n // if identify input is a proxied object created by the async loading snippet, convert it into an identify object\n if (type(identify_obj) === 'object' && Object.prototype.hasOwnProperty.call(identify_obj, '_q')) {\n identify_obj = _convertProxyObjectToRealObject(new Identify(), identify_obj);\n }\n if (identify_obj instanceof Identify) {\n // only send if there are operations\n if (Object.keys(identify_obj.userPropertiesOperations).length > 0) {\n return this._logEvent(Constants.GROUP_IDENTIFY_EVENT, null, null, null, _defineProperty({}, group_type, group_name), identify_obj.userPropertiesOperations, null, opt_callback, opt_error_callback, outOfSession);\n } else {\n _logErrorsWithCallbacks(opt_callback, opt_error_callback, 0, 'No request sent', {\n reason: 'No group property operations'\n });\n }\n } else {\n utils.log.error('Invalid identify input type. Expected Identify object but saw ' + type(identify_obj));\n _logErrorsWithCallbacks(opt_callback, opt_error_callback, 0, 'No request sent', {\n reason: 'Invalid identify input type'\n });\n }\n};\n\n/**\n * Set a versionName for your application.\n * @public\n * @param {string} versionName - The version to set for your application.\n * @example amplitudeClient.setVersionName('1.12.3');\n */\nAmplitudeClient.prototype.setVersionName = function setVersionName(versionName) {\n if (this._shouldDeferCall()) {\n return this._q.push(['setVersionName'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n if (!utils.validateInput(versionName, 'versionName', 'string')) {\n return;\n }\n this.options.versionName = versionName;\n};\n\n/**\n * Private logEvent method. Keeps apiProperties from being publicly exposed.\n * @private\n */\nAmplitudeClient.prototype._logEvent = function _logEvent(eventType, eventProperties, apiProperties, userProperties, groups, groupProperties, timestamp, callback, errorCallback, outOfSession) {\n _loadCookieData(this); // reload cookie before each log event to sync event meta-data between windows and tabs\n\n if (!eventType) {\n _logErrorsWithCallbacks(callback, errorCallback, 0, 'No request sent', {\n reason: 'Missing eventType'\n });\n return;\n }\n if (this.options.optOut) {\n _logErrorsWithCallbacks(callback, errorCallback, 0, 'No request sent', {\n reason: 'optOut is set to true'\n });\n return;\n }\n try {\n var eventId;\n if (eventType === Constants.IDENTIFY_EVENT || eventType === Constants.GROUP_IDENTIFY_EVENT) {\n eventId = this.nextIdentifyId();\n } else {\n eventId = this.nextEventId();\n }\n var sequenceNumber = this.nextSequenceNumber();\n var eventTime = type(timestamp) === 'number' ? timestamp : new Date().getTime();\n if (outOfSession) {\n this._sessionId = -1;\n } else if (!this._sessionId || !this._lastEventTime || eventTime - this._lastEventTime > this.options.sessionTimeout) {\n this._sessionId = eventTime;\n this._runNewSessionStartCallbacks();\n }\n this._lastEventTime = eventTime;\n _saveCookieData(this);\n var osName = this._ua.browser.name;\n var osVersion = this._ua.browser.major;\n var deviceModel = this._ua.device.model || this._ua.os.name;\n var deviceVendor = this._ua.device.vendor;\n userProperties = userProperties || {};\n var trackingOptions = _objectSpread2({}, this._apiPropertiesTrackingOptions);\n apiProperties = _objectSpread2(_objectSpread2({}, apiProperties || {}), trackingOptions);\n eventProperties = eventProperties || {};\n groups = groups || {};\n groupProperties = groupProperties || {};\n var event = {\n device_id: this.options.deviceId,\n user_id: this.options.userId,\n timestamp: eventTime,\n event_id: eventId,\n session_id: this._sessionId || -1,\n event_type: eventType,\n version_name: this.options.versionName || null,\n platform: _shouldTrackField(this, 'platform') ? this.options.platform : null,\n os_name: _shouldTrackField(this, 'os_name') ? osName || null : null,\n os_version: _shouldTrackField(this, 'os_version') ? osVersion || null : null,\n device_model: _shouldTrackField(this, 'device_model') ? deviceModel || null : null,\n device_manufacturer: _shouldTrackField(this, 'device_manufacturer') ? deviceVendor || null : null,\n language: _shouldTrackField(this, 'language') ? this.options.language : null,\n api_properties: apiProperties,\n event_properties: utils.truncate(utils.validateProperties(eventProperties)),\n user_properties: utils.truncate(utils.validateProperties(userProperties)),\n uuid: uuid(),\n library: this.options.library,\n sequence_number: sequenceNumber,\n // for ordering events and identifys\n groups: utils.truncate(utils.validateGroups(groups)),\n group_properties: utils.truncate(utils.validateProperties(groupProperties)),\n user_agent: this._userAgent,\n partner_id: this.options.partnerId || null\n };\n if (_isObservePlanSet(this)) {\n event.plan = {\n branch: this.options.plan.branch || undefined,\n source: this.options.plan.source || undefined,\n version: this.options.plan.version || undefined,\n versionId: this.options.plan.versionId || undefined\n };\n }\n if (_isIngestionMetadataSet(this)) {\n event.ingestion_metadata = {\n source_name: this.options.ingestionMetadata.sourceName || undefined,\n source_version: this.options.ingestionMetadata.sourceVersion || undefined\n };\n }\n if (eventType === Constants.IDENTIFY_EVENT || eventType === Constants.GROUP_IDENTIFY_EVENT) {\n this._unsentIdentifys.push({\n event: event,\n callback: callback,\n errorCallback: errorCallback\n });\n this._limitEventsQueued(this._unsentIdentifys);\n } else {\n this._unsentEvents.push({\n event: event,\n callback: callback,\n errorCallback: errorCallback\n });\n this._limitEventsQueued(this._unsentEvents);\n }\n if (this.options.saveEvents) {\n this.saveEvents();\n }\n this._sendEventsIfReady();\n\n // In the case of an identify event, update the core user store so the experiment SDK can fetch new variants and\n // utilize user properties in real time.\n if (eventType === Constants.IDENTIFY_EVENT && this._connector) {\n this._connector.identityStore.editIdentity().updateUserProperties(utils.truncate(utils.validateProperties(userProperties))).commit();\n }\n return eventId;\n } catch (e) {\n utils.log.error(e);\n }\n};\nvar _isObservePlanSet = function _isObservePlanSet(scope) {\n return scope.options.plan && (scope.options.plan.source || scope.options.plan.branch || scope.options.plan.version || scope.options.plan.versionId);\n};\nvar _isIngestionMetadataSet = function _isIngestionMetadataSet(scope) {\n return scope.options.ingestionMetadata && (scope.options.ingestionMetadata.sourceName || scope.options.ingestionMetadata.sourceVersion);\n};\nvar _shouldTrackField = function _shouldTrackField(scope, field) {\n return !!scope.options.trackingOptions[field];\n};\nvar _generateApiPropertiesTrackingConfig = function _generateApiPropertiesTrackingConfig(scope) {\n // to limit size of config payload, only send fields that have been disabled\n var fields = ['city', 'country', 'dma', 'ip_address', 'region'];\n var config = {};\n for (var i = 0; i < fields.length; i++) {\n var field = fields[i];\n if (!_shouldTrackField(scope, field)) {\n config[field] = false;\n }\n }\n return config;\n};\n\n/**\n * Remove old events from the beginning of the array if too many have accumulated. Default limit is 1000 events.\n * @private\n */\nAmplitudeClient.prototype._limitEventsQueued = function _limitEventsQueued(queue) {\n if (queue.length > this.options.savedMaxCount) {\n var deletedEvents = queue.splice(0, queue.length - this.options.savedMaxCount);\n deletedEvents.forEach(function (event) {\n _logErrorsWithCallbacks(event.callback, event.errorCallback, 0, 'No request sent', {\n reason: 'Event dropped because options.savedMaxCount exceeded. User may be offline or have a content blocker'\n });\n });\n }\n};\n\n/**\n * This is the callback for logEvent and identify calls. It gets called after the event/identify is uploaded,\n * and the server response code and response body from the upload request are passed to the callback function.\n * @callback Amplitude~eventCallback\n * @param {number} responseCode - Server response code for the event / identify upload request.\n * @param {string} responseBody - Server response body for the event / identify upload request.\n * @param {object} details - (optional) Additional information associated with sending event.\n */\n\n/**\n * Log an event with eventType and eventProperties\n * @public\n * @param {string} eventType - name of event\n * @param {object} eventProperties - (optional) an object with string keys and values for the event properties.\n * @param {Amplitude~eventCallback} opt_callback - (optional) a callback function to run after the event is logged.\n * Note: the server response code and response body from the event upload are passed to the callback function.\n * @param {Amplitude~eventCallback} opt_error_callback - (optional) a callback function to run after the event logging\n * fails. The failure can be from the request being malformed or from a network failure\n * Note: the server response code and response body from the event upload are passed to the callback function.\n * @param {boolean} outOfSession - (optional) if this event is out of session or not\n * @example amplitudeClient.logEvent('Clicked Homepage Button', {'finished_flow': false, 'clicks': 15});\n */\nAmplitudeClient.prototype.logEvent = function logEvent(eventType, eventProperties, opt_callback, opt_error_callback) {\n var outOfSession = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n if (this._shouldDeferCall()) {\n return this._q.push(['logEvent'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n return this.logEventWithTimestamp(eventType, eventProperties, null, opt_callback, opt_error_callback, outOfSession);\n};\n\n/**\n * Log an event with eventType and eventProperties and a custom timestamp\n * @public\n * @param {string} eventType - name of event\n * @param {object} eventProperties - (optional) an object with string keys and values for the event properties.\n * @param {number} timestamp - (optional) the custom timestamp as milliseconds since epoch.\n * @param {Amplitude~eventCallback} opt_callback - (optional) a callback function to run after the event is logged.\n * Note: the server response code and response body from the event upload are passed to the callback function.\n * @param {Amplitude~eventCallback} opt_error_callback - (optional) a callback function to run after the event logging\n * fails. The failure can be from the request being malformed or from a network failure\n * Note: the server response code and response body from the event upload are passed to the callback function.\n * @param {boolean} outOfSession - (optional) if out of the sessioin or not\n * @example amplitudeClient.logEventWithTimestamp('Clicked Homepage Button', {'finished_flow': false, 'clicks': 15}, Date.now());\n */\nAmplitudeClient.prototype.logEventWithTimestamp = function logEvent(eventType, eventProperties, timestamp, opt_callback, opt_error_callback) {\n var outOfSession = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n if (this._shouldDeferCall()) {\n return this._q.push(['logEventWithTimestamp'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n if (!this._apiKeySet('logEvent()')) {\n _logErrorsWithCallbacks(opt_callback, opt_error_callback, 0, 'No request sent', {\n reason: 'API key not set'\n });\n return -1;\n }\n if (!utils.validateInput(eventType, 'eventType', 'string')) {\n _logErrorsWithCallbacks(opt_callback, opt_error_callback, 0, 'No request sent', {\n reason: 'Invalid type for eventType'\n });\n return -1;\n }\n if (utils.isEmptyString(eventType)) {\n _logErrorsWithCallbacks(opt_callback, opt_error_callback, 0, 'No request sent', {\n reason: 'Missing eventType'\n });\n return -1;\n }\n if (!utils.validateInput(outOfSession, 'outOfSession', 'boolean')) {\n _logErrorsWithCallbacks(opt_callback, opt_error_callback, 0, 'No request sent', {\n reason: 'Invalid outOfSession value'\n });\n }\n return this._logEvent(eventType, eventProperties, null, null, null, null, timestamp, opt_callback, opt_error_callback, outOfSession);\n};\n\n/**\n * Log an event with eventType, eventProperties, and groups. Use this to set event-level groups.\n * Note: the group(s) set only apply for the specific event type being logged and does not persist on the user\n * (unless you explicitly set it with setGroup).\n *\n * See the [advanced topics article](https://developers.amplitude.com/docs/javascript#user-groups) for more information\n * about groups and Count by Distinct on the Amplitude platform.\n * @public\n * @param {string} eventType - name of event\n * @param {object} eventProperties - (optional) an object with string keys and values for the event properties.\n * @param {object} groups - (optional) an object with string groupType: groupName values for the event being logged.\n * groupName can be a string or an array of strings.\n * @param {Amplitude~eventCallback} opt_callback - (optional) a callback function to run after the event is logged.\n * Note: the server response code and response body from the event upload are passed to the callback function.\n * @param {Amplitude~eventCallback} opt_error_callback - (optional) a callback function to run after the event logging\n * fails. The failure can be from the request being malformed or from a network failure\n * Note: the server response code and response body from the event upload are passed to the callback function.\n * @example amplitudeClient.logEventWithGroups('Clicked Button', null, {'orgId': 24});\n */\nAmplitudeClient.prototype.logEventWithGroups = function (eventType, eventProperties, groups, opt_callback, opt_error_callback) {\n var outOfSession = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n if (this._shouldDeferCall()) {\n return this._q.push(['logEventWithGroups'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n if (!this._apiKeySet('logEventWithGroups()')) {\n _logErrorsWithCallbacks(event.callback, event.errorCallback, 0, 'No request sent', {\n reason: 'API key not set'\n });\n return -1;\n }\n if (!utils.validateInput(eventType, 'eventType', 'string')) {\n _logErrorsWithCallbacks(event.callback, event.errorCallback, 0, 'No request sent', {\n reason: 'Invalid type for eventType'\n });\n return -1;\n }\n if (!utils.validateInput(outOfSession, 'outOfSession', 'boolean')) {\n _logErrorsWithCallbacks(event.callback, event.errorCallback, 0, 'No request sent', {\n reason: 'Invalid outOfSession value'\n });\n }\n return this._logEvent(eventType, eventProperties, null, null, groups, null, null, opt_callback, opt_error_callback, outOfSession);\n};\n\n/**\n * Test that n is a number or a numeric value.\n * @private\n */\nvar _isNumber = function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n};\n\n/**\n * Handles errors that are sent to both callbacks\n * @private\n */\nvar _logErrorsWithCallbacks = function _logErrorsWithCallbacks(opt_callback, opt_error_callback, status, response, details) {\n if (type(opt_callback) === 'function') {\n opt_callback(status, response, details);\n }\n if (type(opt_error_callback) === 'function') {\n opt_error_callback(status, response, details);\n }\n};\n\n/**\n * Log revenue with Revenue interface. The new revenue interface allows for more revenue fields like\n * revenueType and event properties.\n *\n * See the [Revenue](https://amplitude.github.io/Amplitude-JavaScript/Revenue/)\n * reference page for more information on the Revenue interface and logging revenue.\n * @public\n * @param {Revenue} revenue_obj - the revenue object containing the revenue data being logged.\n * @example var revenue = new amplitude.Revenue().setProductId('productIdentifier').setPrice(10.99);\n * amplitude.logRevenueV2(revenue);\n */\nAmplitudeClient.prototype.logRevenueV2 = function logRevenueV2(revenue_obj) {\n if (this._shouldDeferCall()) {\n return this._q.push(['logRevenueV2'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n if (!this._apiKeySet('logRevenueV2()')) {\n return;\n }\n\n // if revenue input is a proxied object created by the async loading snippet, convert it into an revenue object\n if (type(revenue_obj) === 'object' && Object.prototype.hasOwnProperty.call(revenue_obj, '_q')) {\n revenue_obj = _convertProxyObjectToRealObject(new Revenue(), revenue_obj);\n }\n if (revenue_obj instanceof Revenue) {\n // only send if revenue is valid\n if (revenue_obj && revenue_obj._isValidRevenue()) {\n return this.logEvent(Constants.REVENUE_EVENT, revenue_obj._toJSONObject());\n }\n } else {\n utils.log.error('Invalid revenue input type. Expected Revenue object but saw ' + type(revenue_obj));\n }\n};\n{\n /**\n * Log revenue event with a price, quantity, and product identifier. DEPRECATED - use logRevenueV2\n * @public\n * @deprecated\n * @param {number} price - price of revenue event\n * @param {number} quantity - (optional) quantity of products in revenue event. If no quantity specified default to 1.\n * @param {string} product - (optional) product identifier\n * @example amplitudeClient.logRevenue(3.99, 1, 'product_1234');\n */\n AmplitudeClient.prototype.logRevenue = function logRevenue(price, quantity, product) {\n if (this._shouldDeferCall()) {\n return this._q.push(['logRevenue'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n\n // Test that the parameters are of the right type.\n if (!this._apiKeySet('logRevenue()') || !_isNumber(price) || quantity !== undefined && !_isNumber(quantity)) {\n // utils.log('Price and quantity arguments to logRevenue must be numbers');\n return -1;\n }\n return this._logEvent(Constants.REVENUE_EVENT, {}, {\n productId: product,\n special: 'revenue_amount',\n quantity: quantity || 1,\n price: price\n }, null, null, null, null, null);\n };\n}\n\n/**\n * Calls error callback on unsent events\n * @private\n */\nAmplitudeClient.prototype._logErrorsOnEvents = function _logErrorsOnEvents(maxEventId, maxIdentifyId, status, response) {\n var queues = ['_unsentEvents', '_unsentIdentifys'];\n for (var j = 0; j < queues.length; j++) {\n var queue = queues[j];\n var maxId = queue === '_unsentEvents' ? maxEventId : maxIdentifyId;\n for (var i = 0; i < this[queue].length || 0; i++) {\n var unsentEvent = this[queue][i];\n if (unsentEvent.event.event_id <= maxId) {\n if (unsentEvent.errorCallback) {\n unsentEvent.errorCallback(status, response);\n }\n }\n }\n }\n};\n\n/**\n * Remove events in storage with event ids up to and including maxEventId.\n * @private\n */\nAmplitudeClient.prototype.removeEvents = function removeEvents(maxEventId, maxIdentifyId, status, response) {\n _removeEvents(this, '_unsentEvents', maxEventId, status, response);\n _removeEvents(this, '_unsentIdentifys', maxIdentifyId, status, response);\n};\n\n/**\n * Helper function to remove events up to maxId from a single queue.\n * Does a true filter in case events get out of order or old events are removed.\n * @private\n */\nvar _removeEvents = function _removeEvents(scope, eventQueue, maxId, status, response) {\n if (maxId < 0) {\n return;\n }\n var filteredEvents = [];\n for (var i = 0; i < scope[eventQueue].length || 0; i++) {\n var unsentEvent = scope[eventQueue][i];\n if (unsentEvent.event.event_id > maxId) {\n filteredEvents.push(unsentEvent);\n } else {\n if (unsentEvent.callback) {\n unsentEvent.callback(status, response);\n }\n }\n }\n scope[eventQueue] = filteredEvents;\n};\n\n/**\n * Send unsent events. Note: this is called automatically after events are logged if option batchEvents is false.\n * If batchEvents is true, then events are only sent when batch criterias are met.\n * @private\n */\nAmplitudeClient.prototype.sendEvents = function sendEvents() {\n if (!this._apiKeySet('sendEvents()')) {\n this.removeEvents(Infinity, Infinity, 0, 'No request sent', {\n reason: 'API key not set'\n });\n return;\n }\n if (this.options.optOut) {\n this.removeEvents(Infinity, Infinity, 0, 'No request sent', {\n reason: 'Opt out is set to true'\n });\n return;\n }\n\n // How is it possible to get into this state?\n if (this._unsentCount() === 0) {\n return;\n }\n\n // We only make one request at a time. sendEvents will be invoked again once\n // the last request completes.\n // beacon data is sent synchronously, so don't pause for it\n if (this.options.transport !== Constants.TRANSPORT_BEACON) {\n if (this._sending) {\n return;\n }\n this._sending = true;\n }\n var protocol = this.options.forceHttps ? 'https' : 'https:' === GlobalScope.location.protocol ? 'https' : 'http';\n var url = protocol + '://' + this.options.apiEndpoint;\n\n // fetch events to send\n var numEvents = Math.min(this._unsentCount(), this.options.uploadBatchSize);\n var mergedEvents = this._mergeEventsAndIdentifys(numEvents);\n var maxEventId = mergedEvents.maxEventId;\n var maxIdentifyId = mergedEvents.maxIdentifyId;\n var events = JSON.stringify(mergedEvents.eventsToSend.map(function (_ref2) {\n var event = _ref2.event;\n return event;\n }));\n var uploadTime = new Date().getTime();\n var data = {\n client: this.options.apiKey,\n e: events,\n v: Constants.API_VERSION,\n upload_time: uploadTime,\n checksum: md5(Constants.API_VERSION + this.options.apiKey + events + uploadTime)\n };\n if (this.options.transport === Constants.TRANSPORT_BEACON && typeof navigator !== 'undefined') {\n var success = navigator.sendBeacon(url, new URLSearchParams(data));\n if (success) {\n this.removeEvents(maxEventId, maxIdentifyId, 200, 'success');\n if (this.options.saveEvents) {\n this.saveEvents();\n }\n } else {\n this._logErrorsOnEvents(maxEventId, maxIdentifyId, 0, '');\n }\n return;\n }\n var scope = this;\n try {\n new Request(url, data, this.options.headers).send(function (status, response) {\n scope._sending = false;\n try {\n if (status === 200) {\n scope.removeEvents(maxEventId, maxIdentifyId, status, response);\n\n // Update the event cache after the removal of sent events.\n if (scope.options.saveEvents) {\n scope.saveEvents();\n }\n\n // Send more events if any queued during previous send.\n scope._sendEventsIfReady();\n\n // handle payload too large\n } else {\n scope._logErrorsOnEvents(maxEventId, maxIdentifyId, status, response);\n if (status === 413) {\n // utils.log('request too large');\n // Can't even get this one massive event through. Drop it, even if it is an identify.\n if (scope.options.uploadBatchSize === 1) {\n scope.removeEvents(maxEventId, maxIdentifyId, status, response);\n }\n\n // The server complained about the length of the request. Backoff and try again.\n scope.options.uploadBatchSize = Math.ceil(numEvents / 2);\n scope.sendEvents();\n }\n }\n // else {\n // all the events are still queued, and will be retried when the next\n // event is sent In the interest of debugging, it would be nice to have\n // something like an event emitter for a better debugging experince\n // here.\n // }\n } catch (e) {\n // utils.log.error('failed upload');\n }\n });\n } catch (e) {\n var status = 0,\n response = 'Request failed to send';\n utils.log.error(response);\n scope._logErrorsOnEvents(maxEventId, maxIdentifyId, status, response);\n scope.removeEvents(maxEventId, maxIdentifyId, status, response, {\n reason: e.message\n });\n }\n};\n\n/**\n * Merge unsent events and identifys together in sequential order based on their sequence number, for uploading.\n * Identifys given higher priority than Events. Also earlier sequence given priority\n * @private\n */\nAmplitudeClient.prototype._mergeEventsAndIdentifys = function _mergeEventsAndIdentifys(numEvents) {\n // coalesce events from both queues\n var eventsToSend = [];\n var eventIndex = 0;\n var maxEventId = -1;\n var identifyIndex = 0;\n var maxIdentifyId = -1;\n while (eventsToSend.length < numEvents) {\n var unsentEvent = void 0;\n var noIdentifys = identifyIndex >= this._unsentIdentifys.length;\n var noEvents = eventIndex >= this._unsentEvents.length;\n\n // case 0: no events or identifys left\n // note this should not happen, this means we have less events and identifys than expected\n if (noEvents && noIdentifys) {\n utils.log.error('Merging Events and Identifys, less events and identifys than expected');\n break;\n }\n\n // case 1: no identifys - grab from events\n else if (noIdentifys) {\n unsentEvent = this._unsentEvents[eventIndex++];\n maxEventId = unsentEvent.event.event_id;\n\n // case 2: no events - grab from identifys\n } else if (noEvents) {\n unsentEvent = this._unsentIdentifys[identifyIndex++];\n maxIdentifyId = unsentEvent.event.event_id;\n\n // case 3: need to compare sequence numbers\n } else {\n // events logged before v2.5.0 won't have a sequence number, put those first\n if (!('sequence_number' in this._unsentEvents[eventIndex].event) || this._unsentEvents[eventIndex].event.sequence_number < this._unsentIdentifys[identifyIndex].event.sequence_number) {\n unsentEvent = this._unsentEvents[eventIndex++];\n maxEventId = unsentEvent.event.event_id;\n } else {\n unsentEvent = this._unsentIdentifys[identifyIndex++];\n maxIdentifyId = unsentEvent.event.event_id;\n }\n }\n eventsToSend.push(unsentEvent);\n }\n return {\n eventsToSend: eventsToSend,\n maxEventId: maxEventId,\n maxIdentifyId: maxIdentifyId\n };\n};\n{\n /**\n * Set global user properties. Note this is deprecated, and we recommend using setUserProperties\n * @public\n * @deprecated\n */\n AmplitudeClient.prototype.setGlobalUserProperties = function setGlobalUserProperties(userProperties) {\n this.setUserProperties(userProperties);\n };\n}\n\n/**\n * Get the current version of Amplitude's Javascript SDK.\n * @public\n * @returns {number} version number\n * @example var amplitudeVersion = amplitude.__VERSION__;\n */\nAmplitudeClient.prototype.__VERSION__ = function getVersion() {\n return this.options.library.version;\n};\n\n/**\n * Sets the library name and version. Default is `amplitude-js` and the version defined in package.json. Used if you're building another library on top of amplitude-js and want a custom data source value\n * @public\n * @param {string} name - Custom library name\n * @param {string} version - Custom library version\n */\nAmplitudeClient.prototype.setLibrary = function setLibrary(name, version) {\n if (name !== null && typeof name !== 'undefined') {\n this.options.library.name = name;\n }\n if (version !== null && typeof version !== 'undefined') {\n this.options.library.version = version;\n }\n};\n\n/**\n * Determines whether or not to push call to this._q or invoke it\n * @private\n */\nAmplitudeClient.prototype._shouldDeferCall = function _shouldDeferCall() {\n return this._pendingReadStorage || this._initializationDeferred;\n};\n\n/**\n * Defers Initialization by putting all functions into storage until users\n * have accepted terms for tracking\n * @private\n */\nAmplitudeClient.prototype._deferInitialization = function _deferInitialization() {\n this._initializationDeferred = true;\n this._q.push(['init'].concat(Array.prototype.slice.call(arguments, 0)));\n};\n\n/**\n * Enable tracking via logging events and dropping a cookie\n * Intended to be used with the deferInitialization configuration flag\n * This will drop a cookie and reset initialization deferred\n * @public\n */\nAmplitudeClient.prototype.enableTracking = function enableTracking() {\n // This will call init (which drops the cookie) and will run any pending tasks\n this._initializationDeferred = false;\n _saveCookieData(this);\n this.runQueuedFunctions();\n};\n\n/**\n * Find best server url if choose to enable dynamic configuration.\n */\nAmplitudeClient.prototype._refreshDynamicConfig = function _refreshDynamicConfig() {\n if (this.options.useDynamicConfig) {\n instance$1.refresh(this.options.serverZone, this.options.forceHttps, function () {\n this.options.apiEndpoint = instance$1.ingestionEndpoint;\n }.bind(this));\n }\n};\n\n/**\n * Returns the deviceId value.\n * @public\n * @return {string} Id of current device.\n */\nAmplitudeClient.prototype.getDeviceId = function getDeviceId() {\n return this.options.deviceId;\n};\n\n/**\n * Returns the userId.\n * @public\n * @return {string} Id of current user.\n */\nAmplitudeClient.prototype.getUserId = function getUserId() {\n return this.options.userId;\n};\n\n/**\n * Set a custom session expiration time.\n * @public\n * @param {number} timeInMillis - session expireation time in milliseconds.\n */\nAmplitudeClient.prototype.setMinTimeBetweenSessionsMillis = function setMinTimeBetweenSessionsMillis(timeInMillis) {\n if (!utils.validateInput(timeInMillis, 'timeInMillis', 'number')) {\n return;\n }\n if (this._shouldDeferCall()) {\n return this._q.push(['setMinTimeBetweenSessionsMillis'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n try {\n this.options.sessionTimeout = timeInMillis;\n } catch (e) {\n utils.log.error(e);\n }\n};\n\n/**\n * Sets minimum number of events to batch together per request if batchEvents is true.\n * @public\n * @param {number} eventUploadThreshold - The number of the event upload threshold. Default value is 30.\n * @example amplitudeClient.setEventUploadThreshold(10);\n */\nAmplitudeClient.prototype.setEventUploadThreshold = function setEventUploadThreshold(eventUploadThreshold) {\n if (!utils.validateInput(eventUploadThreshold, 'eventUploadThreshold', 'number')) {\n return;\n }\n if (this._shouldDeferCall()) {\n return this._q.push(['setEventUploadThreshold'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n try {\n this.options.eventUploadThreshold = eventUploadThreshold;\n } catch (e) {\n utils.log.error(e);\n }\n};\n\n/**\n * Dynamically adjust server URL\n * @public\n * @param {bool} useDynamicConfig - if enable dynamic config or not.\n * @example amplitudeClient.setUseDynamicConfig(true);\n */\nAmplitudeClient.prototype.setUseDynamicConfig = function setUseDynamicConfig(useDynamicConfig) {\n if (!utils.validateInput(useDynamicConfig, 'useDynamicConfig', 'boolean')) {\n return;\n }\n if (this._shouldDeferCall()) {\n return this._q.push(['setUseDynamicConfig'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n try {\n this.options.useDynamicConfig = useDynamicConfig;\n this._refreshDynamicConfig();\n } catch (e) {\n utils.log.error(e);\n }\n};\n\n/**\n * Sets the server zone, used for server api endpoint and dynamic configuration.\n * @public\n * @param {string} serverZone - the server zone value. AmplitudeServerZone.US or AmplitudeServerZone.EU.\n * @param {bool} serverZoneBasedApi - (optional) update api endpoint with serverZone change or not. For data residency, recommend to enable it unless using own proxy server.\n * @example amplitudeClient.setServerZone(AmplitudeServerZone.EU, true);\n */\nAmplitudeClient.prototype.setServerZone = function setServerZone(serverZone) {\n var serverZoneBasedApi = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (serverZone !== AmplitudeServerZone.EU && serverZone !== AmplitudeServerZone.US || !utils.validateInput(serverZoneBasedApi, 'serverZoneBasedApi', 'boolean')) {\n return;\n }\n if (this._shouldDeferCall()) {\n return this._q.push(['setServerZone'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n try {\n this.options.serverZone = serverZone;\n this.options.serverZoneBasedApi = serverZoneBasedApi;\n if (serverZoneBasedApi) {\n this.options.apiEndpoint = getEventLogApi(this.options.serverZone);\n }\n } catch (e) {\n utils.log.error(e);\n }\n};\n\n/**\n * Sets the server URL for the request.\n * @public\n * @param {string} serverUrl - The value of the server URL.\n * @example amplitudeClient.setServerUrl('api.amplitude.com');\n */\nAmplitudeClient.prototype.setServerUrl = function setServerUrl(serverUrl) {\n if (!utils.validateInput(serverUrl, 'serverUrl', 'string')) {\n return;\n }\n if (this._shouldDeferCall()) {\n return this._q.push(['setServerUrl'].concat(Array.prototype.slice.call(arguments, 0)));\n }\n try {\n this.options.apiEndpoint = serverUrl;\n } catch (e) {\n utils.log.error(e);\n }\n};\n\n/**\n * Deprecated legacy API of the Amplitude JS SDK - instance manager.\n *\n * Wraps around the current [AmplitudeClient](https://amplitude.github.io/Amplitude-JavaScript/) which provides more features\n * Function calls directly on amplitude have been deprecated. Please call methods on the default shared instance: amplitude.getInstance() instead.\n *\n * See the [3.0.0 changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/ed405afb5f06d5cf5b72539a5d09179abcf7e1fe/README.md#300-update-and-logging-events-to-multiple-amplitude-apps) for more information about this change.\n * @constructor Amplitude\n * @public\n * @deprecated\n * @example var amplitude = new Amplitude();\n */\nvar Amplitude = function Amplitude() {\n this.options = _objectSpread2({}, DEFAULT_OPTIONS);\n this._q = [];\n this._instances = {}; // mapping of instance names to instances\n};\n\nAmplitude.prototype.Identify = Identify;\nAmplitude.prototype.Revenue = Revenue;\nAmplitude.prototype.getInstance = function getInstance(instance) {\n instance = utils.isEmptyString(instance) ? Constants.DEFAULT_INSTANCE : instance.toLowerCase();\n var client = this._instances[instance];\n if (client === undefined) {\n client = new AmplitudeClient(instance);\n this._instances[instance] = client;\n }\n return client;\n};\n{\n /**\n * Initializes the Amplitude Javascript SDK with your apiKey and any optional configurations.\n * This is required before any other methods can be called.\n * @public\n * @param {string} apiKey - The API key for your app.\n * @param {string} opt_userId - (optional) An identifier for this user.\n * @param {object} opt_config - (optional) Configuration options.\n * See [options.js](https://github.com/amplitude/Amplitude-JavaScript/blob/master/src/options.js#L14) for list of options and default values.\n * @param {function} opt_callback - (optional) Provide a callback function to run after initialization is complete.\n * @deprecated Please use amplitude.getInstance().init(apiKey, opt_userId, opt_config, opt_callback);\n * @example amplitude.init('API_KEY', 'USER_ID', {includeReferrer: true, includeUtm: true}, function() { alert('init complete'); });\n */\n Amplitude.prototype.init = function init(apiKey, opt_userId, opt_config, opt_callback) {\n this.getInstance().init(apiKey, opt_userId, opt_config, function (instance) {\n // make options such as deviceId available for callback functions\n this.options = instance.options;\n if (type(opt_callback) === 'function') {\n opt_callback(instance);\n }\n }.bind(this));\n };\n\n /**\n * Returns true if a new session was created during initialization, otherwise false.\n * @public\n * @return {boolean} Whether a new session was created during initialization.\n * @deprecated Please use amplitude.getInstance().isNewSession();\n */\n Amplitude.prototype.isNewSession = function isNewSession() {\n return this.getInstance().isNewSession();\n };\n\n /**\n * Returns the id of the current session.\n * @public\n * @return {number} Id of the current session.\n * @deprecated Please use amplitude.getInstance().getSessionId();\n */\n Amplitude.prototype.getSessionId = function getSessionId() {\n return this.getInstance().getSessionId();\n };\n\n /**\n * Increments the eventId and returns it.\n * @private\n */\n Amplitude.prototype.nextEventId = function nextEventId() {\n return this.getInstance().nextEventId();\n };\n\n /**\n * Increments the identifyId and returns it.\n * @private\n */\n Amplitude.prototype.nextIdentifyId = function nextIdentifyId() {\n return this.getInstance().nextIdentifyId();\n };\n\n /**\n * Increments the sequenceNumber and returns it.\n * @private\n */\n Amplitude.prototype.nextSequenceNumber = function nextSequenceNumber() {\n return this.getInstance().nextSequenceNumber();\n };\n\n /**\n * Saves unsent events and identifies to localStorage. JSON stringifies event queues before saving.\n * Note: this is called automatically every time events are logged, unless you explicitly set option saveEvents to false.\n * @private\n */\n Amplitude.prototype.saveEvents = function saveEvents() {\n this.getInstance().saveEvents();\n };\n\n /**\n * Sets a customer domain for the amplitude cookie. Useful if you want to support cross-subdomain tracking.\n * @public\n * @param {string} domain to set.\n * @deprecated Please use amplitude.getInstance().setDomain(domain);\n * @example amplitude.setDomain('.amplitude.com');\n */\n Amplitude.prototype.setDomain = function setDomain(domain) {\n this.getInstance().setDomain(domain);\n };\n\n /**\n * Sets an identifier for the current user.\n * @public\n * @param {string} userId - identifier to set. Can be null.\n * @deprecated Please use amplitude.getInstance().setUserId(userId);\n * @example amplitude.setUserId('joe@gmail.com');\n */\n Amplitude.prototype.setUserId = function setUserId(userId) {\n this.getInstance().setUserId(userId);\n };\n\n /**\n * Add user to a group or groups. You need to specify a groupType and groupName(s).\n * For example you can group people by their organization.\n * In that case groupType is \"orgId\" and groupName would be the actual ID(s).\n * groupName can be a string or an array of strings to indicate a user in multiple gruups.\n * You can also call setGroup multiple times with different groupTypes to track multiple types of groups (up to 5 per app).\n * Note: this will also set groupType: groupName as a user property.\n * See the [advanced topics article](https://developers.amplitude.com/docs/javascript#user-groups) for more information.\n * @public\n * @param {string} groupType - the group type (ex: orgId)\n * @param {string|list} groupName - the name of the group (ex: 15), or a list of names of the groups\n * @deprecated Please use amplitude.getInstance().setGroup(groupType, groupName);\n * @example amplitude.setGroup('orgId', 15); // this adds the current user to orgId 15.\n */\n Amplitude.prototype.setGroup = function (groupType, groupName) {\n this.getInstance().setGroup(groupType, groupName);\n };\n\n /**\n * Sets whether to opt current user out of tracking.\n * @public\n * @param {boolean} enable - if true then no events will be logged or sent.\n * @deprecated Please use amplitude.getInstance().setOptOut(enable);\n * @example: amplitude.setOptOut(true);\n */\n Amplitude.prototype.setOptOut = function setOptOut(enable) {\n this.getInstance().setOptOut(enable);\n };\n\n /**\n * Regenerates a new random deviceId for current user. Note: this is not recommended unless you know what you\n * are doing. This can be used in conjunction with `setUserId(null)` to anonymize users after they log out.\n * With a null userId and a completely new deviceId, the current user would appear as a brand new user in dashboard.\n * This uses src/uuid.js to regenerate the deviceId.\n * @public\n * @deprecated Please use amplitude.getInstance().regenerateDeviceId();\n */\n Amplitude.prototype.regenerateDeviceId = function regenerateDeviceId() {\n this.getInstance().regenerateDeviceId();\n };\n\n /**\n * Sets a custom deviceId for current user. Note: this is not recommended unless you know what you are doing\n * (like if you have your own system for managing deviceIds).\n *\n * Make sure the deviceId you set is sufficiently unique\n * (we recommend something like a UUID - see src/uuid.js for an example of how to generate) to prevent conflicts with other devices in our system.\n * @public\n * @param {string} deviceId - custom deviceId for current user.\n * @deprecated Please use amplitude.getInstance().setDeviceId(deviceId);\n * @example amplitude.setDeviceId('45f0954f-eb79-4463-ac8a-233a6f45a8f0');\n */\n Amplitude.prototype.setDeviceId = function setDeviceId(deviceId) {\n this.getInstance().setDeviceId(deviceId);\n };\n\n /**\n * Sets user properties for the current user.\n * @public\n * @param {object} userProperties - object with string keys and values for the user properties to set.\n * @param {boolean} opt_replace - Deprecated. In earlier versions of the JS SDK the user properties object was kept in\n * memory and replace = true would replace the object in memory. Now the properties are no longer stored in memory, so replace is deprecated.\n * @deprecated Please use amplitude.getInstance().setUserProperties(userProperties);\n * @example amplitude.setUserProperties({'gender': 'female', 'sign_up_complete': true})\n */\n Amplitude.prototype.setUserProperties = function setUserProperties(userProperties) {\n this.getInstance().setUserProperties(userProperties);\n };\n\n /**\n * Clear all of the user properties for the current user. Note: clearing user properties is irreversible!\n * @public\n * @deprecated Please use amplitude.getInstance().clearUserProperties();\n * @example amplitude.clearUserProperties();\n */\n Amplitude.prototype.clearUserProperties = function clearUserProperties() {\n this.getInstance().clearUserProperties();\n };\n\n /**\n * Send an identify call containing user property operations to Amplitude servers.\n * See the [Identify](https://amplitude.github.io/Amplitude-JavaScript/Identify/)\n * reference page for more information on the Identify API and user property operations.\n * @param {Identify} identify_obj - the Identify object containing the user property operations to send.\n * @param {Amplitude~eventCallback} opt_callback - (optional) callback function to run when the identify event has been sent.\n * Note: the server response code and response body from the identify event upload are passed to the callback function.\n * @deprecated Please use amplitude.getInstance().identify(identify);\n * @example\n * var identify = new amplitude.Identify().set('colors', ['rose', 'gold']).add('karma', 1).setOnce('sign_up_date', '2016-03-31');\n * amplitude.identify(identify);\n */\n Amplitude.prototype.identify = function (identify_obj, opt_callback) {\n this.getInstance().identify(identify_obj, opt_callback);\n };\n\n /**\n * Set a versionName for your application.\n * @public\n * @param {string} versionName - The version to set for your application.\n * @deprecated Please use amplitude.getInstance().setVersionName(versionName);\n * @example amplitude.setVersionName('1.12.3');\n */\n Amplitude.prototype.setVersionName = function setVersionName(versionName) {\n this.getInstance().setVersionName(versionName);\n };\n\n /**\n * This is the callback for logEvent and identify calls. It gets called after the event/identify is uploaded,\n * and the server response code and response body from the upload request are passed to the callback function.\n * @callback Amplitude~eventCallback\n * @param {number} responseCode - Server response code for the event / identify upload request.\n * @param {string} responseBody - Server response body for the event / identify upload request.\n */\n\n /**\n * Log an event with eventType and eventProperties\n * @public\n * @param {string} eventType - name of event\n * @param {object} eventProperties - (optional) an object with string keys and values for the event properties.\n * @param {Amplitude~eventCallback} opt_callback - (optional) a callback function to run after the event is logged.\n * Note: the server response code and response body from the event upload are passed to the callback function.\n * @deprecated Please use amplitude.getInstance().logEvent(eventType, eventProperties, opt_callback);\n * @example amplitude.logEvent('Clicked Homepage Button', {'finished_flow': false, 'clicks': 15});\n */\n Amplitude.prototype.logEvent = function logEvent(eventType, eventProperties, opt_callback) {\n return this.getInstance().logEvent(eventType, eventProperties, opt_callback);\n };\n\n /**\n * Log an event with eventType, eventProperties, and groups. Use this to set event-level groups.\n *\n * Note: the group(s) set only apply for the specific event type being logged and does not persist on the user\n * (unless you explicitly set it with setGroup).\n *\n * See the [advanced topics article](https://developers.amplitude.com/docs/javascript#user-groups) for more information\n * about groups and Count by Distinct on the Amplitude platform.\n * @public\n * @param {string} eventType - name of event\n * @param {object} eventProperties - (optional) an object with string keys and values for the event properties.\n * @param {object} groups - (optional) an object with string groupType: groupName values for the event being logged.\n * groupName can be a string or an array of strings.\n * @param {Amplitude~eventCallback} opt_callback - (optional) a callback function to run after the event is logged.\n * Note: the server response code and response body from the event upload are passed to the callback function.\n * @deprecated Please use amplitude.getInstance().logEventWithGroups(eventType, eventProperties, groups, opt_callback);\n * @example amplitude.logEventWithGroups('Clicked Button', null, {'orgId': 24});\n */\n Amplitude.prototype.logEventWithGroups = function (eventType, eventProperties, groups, opt_callback) {\n return this.getInstance().logEventWithGroups(eventType, eventProperties, groups, opt_callback);\n };\n\n /**\n * Log revenue with Revenue interface. The new revenue interface allows for more revenue fields like\n * revenueType and event properties.\n *\n * See the [Revenue](https://amplitude.github.io/Amplitude-JavaScript/Revenue/)\n * reference page for more information on the Revenue interface and logging revenue.\n * @public\n * @param {Revenue} revenue_obj - the revenue object containing the revenue data being logged.\n * @deprecated Please use amplitude.getInstance().logRevenueV2(revenue_obj);\n * @example var revenue = new amplitude.Revenue().setProductId('productIdentifier').setPrice(10.99);\n * amplitude.logRevenueV2(revenue);\n */\n Amplitude.prototype.logRevenueV2 = function logRevenueV2(revenue_obj) {\n return this.getInstance().logRevenueV2(revenue_obj);\n };\n\n /**\n * Log revenue event with a price, quantity, and product identifier.\n * @public\n * @param {number} price - price of revenue event\n * @param {number} quantity - (optional) quantity of products in revenue event. If no quantity specified default to 1.\n * @param {string} product - (optional) product identifier\n * @deprecated Please use amplitude.getInstance().logRevenueV2(revenue_obj);\n * @example amplitude.logRevenue(3.99, 1, 'product_1234');\n */\n Amplitude.prototype.logRevenue = function logRevenue(price, quantity, product) {\n return this.getInstance().logRevenue(price, quantity, product);\n };\n\n /**\n * Remove events in storage with event ids up to and including maxEventId.\n * @private\n */\n Amplitude.prototype.removeEvents = function removeEvents(maxEventId, maxIdentifyId) {\n this.getInstance().removeEvents(maxEventId, maxIdentifyId);\n };\n\n /**\n * Send unsent events. Note: this is called automatically after events are logged if option batchEvents is false.\n * If batchEvents is true, then events are only sent when batch criterias are met.\n * @private\n * @param {Amplitude~eventCallback} callback - (optional) callback to run after events are sent.\n * Note the server response code and response body are passed to the callback as input arguments.\n */\n Amplitude.prototype.sendEvents = function sendEvents(callback) {\n this.getInstance().sendEvents(callback);\n };\n\n /**\n * Set global user properties.\n * @public\n * @deprecated Please use amplitudeClient.setUserProperties\n */\n Amplitude.prototype.setGlobalUserProperties = function setGlobalUserProperties(userProperties) {\n this.getInstance().setUserProperties(userProperties);\n };\n}\n\n/**\n * Get the current version of Amplitude's Javascript SDK.\n * @public\n * @returns {number} version number\n * @example var amplitudeVersion = amplitude.__VERSION__;\n */\nAmplitude.prototype.__VERSION__ = version;\n\n// Entry point\nvar old = typeof GlobalScope !== 'undefined' && GlobalScope.amplitude || {};\nvar newInstance = new Amplitude();\nnewInstance._q = old._q || [];\n\n/**\n * Instantiates Amplitude object and runs all queued function logged by stubbed methods provided by snippets\n * Event queue allows async loading of SDK to not blocking client's app\n */\nfor (var instance in old._iq) {\n // migrate each instance's queue\n if (Object.prototype.hasOwnProperty.call(old._iq, instance)) {\n newInstance.getInstance(instance)._q = old._iq[instance]._q || [];\n }\n}\n\nexport { newInstance as default };\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n/**\n * Ampli - A strong typed wrapper for your Analytics\n *\n * This file is generated by Amplitude.\n * To update run 'ampli pull di_web'\n *\n * Required dependencies: amplitude-js@^8.21.0\n * Tracking Plan Version: 99\n * Build: 1.0.0\n * Runtime: browser:javascript-ampli\n *\n * [View Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest)\n *\n * [Full Setup Instructions](https://data.amplitude.com/oi/Octopus%20Investments/implementation/di_web)\n */\n\nimport amplitude from 'amplitude-js';\n\n/**\n * @typedef BaseEvent\n * @type {object}\n * @property {string} event_type\n * @property {Object.<string, *>} [event_properties]\n */\n\n/**\n * @typedef Plan\n * @type {object}\n * @property {string} [branch]\n * @property {string} [source]\n * @property {string} [version]\n * @property {string} [versionId]\n */\n\n/**\n * Data to be processed by middleware\n * @typedef MiddlewarePayload\n * @type {object}\n * @property {BaseEvent} event\n * @property {MiddlewareExtra} [extra]\n */\n\n/**\n * Function called at the end of each Middleware to run the next middleware in the chain\n * @typedef MiddlewareNext\n * @type {function}\n * @param {MiddlewarePayload} payload\n *\n * @return\n */\n\n/**\n * A function to run on the Event stream (each logEvent call)\n * @typedef Middleware\n * @type {function}\n * @param {MiddlewarePayload} payload The event and extra data being sent\n * @param {MiddlewareNext} next Function to run the next middleware in the chain, not calling next will end the middleware chain\n * @return\n */\n\n/**\n * @typedef LoadClientOptions\n * @type {object}\n * @property {string} [apiKey]\n * @property {Object} [options]\n * @property {AmplitudeClient} [instance]\n */\n\n/**\n * @typedef LoadOptions\n * @type {object}\n * @property {'production'|'development'} [environment]\n * @property {boolean} [disabled]\n * @property {LoadClientOptions} [client]\n */\n\n/**\n * @typedef {Object} EventOptions\n * @type {object}\n */\n\n/**\n * @typedef {Object} IdentifyOptions\n * @type {object}\n */\n\n/**\n * @typedef {Object} GroupOptions\n * @type {object}\n */\n\n/**\n * @typedef {Object} MiddlewareExtra\n * @type {Object.<string, *>}\n */\n\n/**\n * @typedef ApiKey\n * @type {object}\n * @property {string} production\n * @property {string} development\n */\nexport const ApiKey = {\n production: 'ff0df4022bd7df6de9c07cf7ac20b789',\n development: '0dbb192d76d32322d153510ee5143987'\n};\n\n/**\n * @typedef {Object} AllRequired\n * @param {*} [source_website] Property has no description in tracking plan.\n * @param {string} [user_id] the id of the user\n * @param {string} [user_type] Property has no description in tracking plan.\n * @param {boolean} [view_as] Has this event been triggered by someone 'Viewing As' the customer\n */\n\n/**\n * @typedef {Object} BeaconArticle\n * @param {string} [article_id] The id of the knowledge base article clicked\n */\n\n/**\n * @typedef {Object} ContentNavigation\n * @param {'Account information'|'Back to Clients'|'Back to Investments'|'Breadcrumb Client Name'|'Breadcrumb My Clients'|'Discover more'|'Future Gen back to Portfolio Stories'|'Portfolio Stories'|'FGVCT Product page'|'Close icon'|'New snippet'|'New tab'|'Back to my account'|'Try again'} [navigation_type] the method of navigation\n */\n\n/**\n * @typedef {Object} DiCriteria\n * @param {boolean} [di_email_criteria_met] Incorrect OR correct\n * @param {boolean} [di_password_criteria_met] Property has no description in tracking plan.\n * @param {boolean} [di_passwords_match] True or False\n */\n\n/**\n * @typedef {Object} DiDataEntered\n * @param {string} [di_con_entered] Property has no description in tracking plan.\n * @param {string} [di_email_entered] Property has no description in tracking plan.\n */\n\n/**\n * @typedef {Object} DiStatus\n * @param {'locked temp'|'permanent lock'|'successful'|'expired'|'input error'|'server error'|'unregistered'} [di_status] Statuses can be locked temp, permanent lock, successful, expired, input error, server error\n * @param {boolean} [is_user_registered] Check whether user attempted to Login is already Registered (Y/N)\n * @param {boolean} [mfa_status] Has the customer got MFA enabled\n */\n\n/**\n * @typedef {Object} Email\n * @param {string} [email] the email address of the user\n */\n\n/**\n * @typedef {Object} Errors\n * @param {string} [error_code] A value we will sent, that means something e.g. Page not found, document not found etc.\n * @param {string} [error_message] The description of the error - extra details\n * @param {string} [error_name] The \"Redux store object name\" that identifies the error in the codebase\n * @param {string} [error_referrer] The page the user was on when they encountered the error - e.g. https://portal.octopusinvestments.com/clients\n * @param {number} [error_status] e.g 500; 404 etc.\n */\n\n/**\n * @typedef {Object} ExternalLink\n * @param {'beacon - no clients'|'mailto:support@octopusinvestments.com'|'secure portal'|'fgvct_simon_rogerson'|'fgvct_octopus_giving'|'0800 316 2295'|'beacon - tab error'|'new_investor'|'change_details'|'missing_fields'|'beacon'|'new_adviser'|'continue_new_investor'|'continue_missing_fields'|'0800 316 2067'|'mfa_microsoft'|'mfa_google'|'beacon_mfa_contact'} [external_link_clicked] The external link clicked\n */\n\n/**\n * @typedef {Object} Location\n * @param {'application_flow'|'applications_page'|'apply_portal'|'check_email_page'|'client_details_page'|'client_list_export_button'|'client_list_page'|'con_page'|'dashboard_illustrations'|'enter_password_page'|'illustration_page'|'link_expired_page'|'locked_out_page'|'my_account'|'other'|'page_404'|'page_500'|'product_page'|'reports_page'|'resource_centre'|'savings_homepage'|'scv_accounts'|'scv_communications'|'scv_deal_comms'|'scv_documents'|'set_password_page'|'sign_up_login_page'|'single_client_view'|'single_portfolio_view'|'spv_adviser_charges'|'spv_cash_statements'|'spv_certificates'|'spv_dividends'|'spv_export_button'|'spv_trading_statements'|'spv_transactions'|'spv_valuations'|'spv_vct_valuation'|'top_nav'|'welcome_page'|'commission_statements'|'commission_statements_payment_amount'|'resources_page'|'webinar_event_page'|'bottom_nav'|'promo_box'|'business_line_page'|'reset_password_page'|'scv'|'fgvct_product_page'|'spv_contributions'|'scv_portfolio_stories'|'spv'|'company_page'|'scv_portfolios'|'illustrations_modal'|'application_investor_name'|'application_investment_details'|'application_summary'|'application_toast'|'application_adviser_name'|'maintenance_page'|'illustration_investment_details'|'illustration_summary'|'spv_recent_contributions'|'spv_pending_investment'|'application_investor_review'|'application_investor_fail'|'di_login_page'|'di_create_password_page'|'home_page'|'di_confirm_account_number'|'di_check_your_email_page'|'illustration_investment_details_page'|'illustrations_summary'|'di_login_page_error'|'illustration_investor_name'|'my_account_security'|'mfa_register_for_mfa'|'mfa_register_error_page'} [location] The page and/or element (e.g. home_nav ; home_main ; clients_nav etc.) where a customer acess takes place\n */\n\n/**\n * @typedef {Object} Search\n * @param {'scv'|'client_list'|'investment_details'|'illustration_investment_details'|'application_investment_details'} [destination] The page the user navigates to\n * @param {string} [search_content] what the user is searching for - the string of characters in the input value when dropdown is closed\n * @param {'clients'|'amount'|'advisers'} [search_type] What is the user searching for\n * @param {boolean} [successful] Has the customer successfully selected an item from the dropdown\n */\n\n/**\n * @typedef {Object} Tooltips\n * @param {'accrued_fees'|'adviser_charges'|'amc'|'cash_statement'|'con'|'current_value'|'dividends_paid_out'|'signup_con'|'signup_email'|'total_assets'|'dividends_reinvested'|'share_value'|'spv_contributions'|'spv_filter_date'|'recent_contributions'|'authentication_code'} [tooltip_type] Type of tooltip\n */\n\nexport const SpecialEventType = {\n Identify: \"$identify\",\n Group: \"$groupidentify\"\n}\n\n/**\n * Default Amplitude configuration options. Contains tracking plan information.\n */\nexport const DefaultOptions = {\n plan: {\n version: '99',\n branch: 'main',\n source: 'di_web',\n versionId: '2a02484a-30e3-47a9-9f23-f2f893ea6555'\n },\n ...{\n ingestionMetadata: {\n sourceName: 'browser-javascript-ampli',\n sourceVersion: '1.0.0'\n }\n }\n};\n\nexport class Identify {\n constructor(properties) {\n this.event_type = SpecialEventType.Identify;\n this.event_properties = properties;\n }\n}\n\nexport class AdminRegistrationIntended {\n constructor(properties) {\n this.event_type = 'admin_registration_intended';\n this.event_properties = properties;\n }\n}\n\nexport class BackButtonClicked {\n constructor(properties) {\n this.event_type = 'back_button_clicked';\n this.event_properties = properties;\n }\n}\n\nexport class BeaconArticleViewed {\n constructor(properties) {\n this.event_type = 'beacon_article_viewed';\n this.event_properties = properties;\n }\n}\n\nexport class BeaconClicked {\n constructor(properties) {\n this.event_type = 'beacon_clicked';\n this.event_properties = properties;\n }\n}\n\nexport class BeaconClosed {\n constructor(properties) {\n this.event_type = 'beacon_closed';\n this.event_properties = properties;\n }\n}\n\nexport class BeaconEmailSent {\n constructor(properties) {\n this.event_type = 'beacon_email_sent';\n this.event_properties = properties;\n }\n}\n\nexport class BeaconSearched {\n constructor(properties) {\n this.event_type = 'beacon_searched';\n this.event_properties = properties;\n }\n}\n\nexport class ContentNavClicked {\n constructor(properties) {\n this.event_type = 'content_nav_clicked';\n this.event_properties = properties;\n }\n}\n\nexport class EmbeddedBeaconClicked {\n constructor(properties) {\n this.event_type = 'embedded_beacon_clicked';\n this.event_properties = properties;\n }\n}\n\nexport class ErrorEncountered {\n constructor(properties) {\n this.event_type = 'error_encountered';\n this.event_properties = properties;\n }\n}\n\nexport class ExternalLinkClicked {\n constructor(properties) {\n this.event_type = 'external_link_clicked';\n this.event_properties = properties;\n }\n}\n\nexport class EyeIconClicked {\n constructor(properties) {\n this.event_type = 'eye_icon_clicked';\n this.event_properties = properties;\n }\n}\n\nexport class ForgotPasswordClicked {\n constructor(properties) {\n this.event_type = 'forgot_password_clicked';\n this.event_properties = properties;\n }\n}\n\nexport class LinkExpiredClicked {\n constructor(properties) {\n this.event_type = 'link_expired_clicked';\n this.event_properties = properties;\n }\n}\n\nexport class LoginCompleted {\n constructor(properties) {\n this.event_type = 'login_completed';\n this.event_properties = properties;\n }\n}\n\nexport class LoginIntended {\n constructor(properties) {\n this.event_type = 'login_intended';\n this.event_properties = properties;\n }\n}\n\nexport class LoginLinkClicked {\n constructor(properties) {\n this.event_type = 'login_link_clicked';\n this.event_properties = properties;\n }\n}\n\nexport class LoginNextClicked {\n constructor(properties) {\n this.event_type = 'login_next_clicked';\n this.event_properties = properties;\n }\n}\n\nexport class LoginRegistrationIntended {\n constructor(properties) {\n this.event_type = 'login_registration_intended';\n this.event_properties = properties;\n }\n}\n\nexport class MfaPasskeyCopied {\n constructor(properties) {\n this.event_type = 'mfa_passkey_copied';\n this.event_properties = properties;\n }\n}\n\nexport class MfaVerifyClicked {\n constructor(properties) {\n this.event_type = 'mfa_verify_clicked';\n this.event_properties = properties;\n }\n}\n\nexport class MfaRegistrationCompleted {\n constructor(properties) {\n this.event_type = 'mfa_registration_completed';\n this.event_properties = properties;\n }\n}\n\nexport class MfaRegistrationFailed {\n constructor(properties) {\n this.event_type = 'mfa_registration_failed';\n this.event_properties = properties;\n }\n}\n\nexport class PasswordCreated {\n constructor(properties) {\n this.event_type = 'password_created';\n this.event_properties = properties;\n }\n}\n\nexport class PasswordSetIntended {\n constructor(properties) {\n this.event_type = 'password_set_intended';\n this.event_properties = properties;\n }\n}\n\nexport class PrivacyPolicyClicked {\n constructor(properties) {\n this.event_type = 'privacy_policy_clicked';\n this.event_properties = properties;\n }\n}\n\nexport class RegistrationCompleted {\n constructor(properties) {\n this.event_type = 'registration_completed';\n this.event_properties = properties;\n }\n}\n\nexport class ResendEmailClicked {\n constructor(properties) {\n this.event_type = 'resend_email_clicked';\n this.event_properties = properties;\n }\n}\n\nexport class SendAccountNumberReminderCancelled {\n constructor(properties) {\n this.event_type = 'send_account_number_reminder_cancelled';\n this.event_properties = properties;\n }\n}\n\nexport class SendAccountNumberReminderClicked {\n constructor(properties) {\n this.event_type = 'send_account_number_reminder_clicked';\n this.event_properties = properties;\n }\n}\n\nexport class SendAccountNumberReminderSent {\n constructor(properties) {\n this.event_type = 'send_account_number_reminder_sent';\n this.event_properties = properties;\n }\n}\n\nexport class TermsAndConditionsClicked {\n constructor(properties) {\n this.event_type = 'terms_and_conditions_clicked';\n this.event_properties = properties;\n }\n}\n\nexport class TooltipViewed {\n constructor(properties) {\n this.event_type = 'tooltip_viewed';\n this.event_properties = properties;\n }\n}\n\nexport class UserVerificationIntended {\n constructor(properties) {\n this.event_type = 'user_verification_intended';\n this.event_properties = properties;\n }\n}\n\n// prettier-ignore\nexport class Ampli {\n constructor() {\n /* @type {AmplitudeClient|undefined} */\n this.amplitude = undefined;\n this.disabled = false;\n /* @type {Middleware[]} */\n this.middlewares = [];\n }\n\n /**\n * @return {AmplitudeClient}\n */\n get client() {\n this.isInitializedAndEnabled();\n return this.amplitude;\n }\n\n /**\n * @return {boolean}\n */\n get isLoaded() {\n return this.amplitude != null;\n }\n\n /**\n * @private\n * @return {boolean}\n */\n isInitializedAndEnabled() {\n if (!this.isLoaded) {\n console.error('ERROR: Ampli is not yet initialized. Have you called ampli.load() on app start?');\n return false;\n }\n return !this.disabled;\n }\n\n /**\n * Initialize the Ampli SDK. Call once when your application starts.\n * @param {LoadOptions} options Configuration options to initialize the Ampli SDK with. 'environment', 'client.apiKey' or 'client.instance' is required.\n */\n load(options) {\n this.disabled = options?.disabled ?? false;\n\n if (this.isLoaded) {\n console.warn('WARNING: Ampli is already initialized. Ampli.load() should be called once at application startup.');\n return;\n }\n\n let apiKey;\n if (options?.client?.apiKey) {\n apiKey = options.client.apiKey;\n } else if (options?.environment) {\n apiKey = ApiKey[options.environment];\n }\n\n if (options?.client?.instance) {\n this.amplitude = options?.client?.instance;\n } else if (apiKey) {\n this.amplitude = amplitude.getInstance();\n this.amplitude?.init(apiKey, undefined, { ...DefaultOptions, ...(options?.client?.options ?? options?.client?.config) });\n } else {\n console.error(\"ERROR: ampli.load() requires 'environment', 'client.apiKey', or 'client.instance'\");\n }\n }\n\n /**\n * Identify a user and set or update that user's properties.\n *\n * @param {string|undefined} userId The user's id.\n * @param {Object} [properties] The user's properties.\n * @param {string} [properties.email] the email address of the user\n * @param {number} [properties.logins] the number of times a user has logged in\n * @param {'d2c'|'advised'|'adviser'|'admin'|'anonymous'|'internal_admin'|'investor'|'adviser-admin'} [properties.role] The users role\n * @param {string} [properties.uuid] The uuid of the user\n * @param {IdentifyOptions} [options] Optional event options.\n * @param {MiddlewareExtra} [extra] Extra unstructured data for middleware.\n */\n identify(userId, properties, options, extra) {\n if (!this.isInitializedAndEnabled()) {\n return;\n }\n\n const event = {\n event_type: SpecialEventType.Identify,\n event_properties: properties,\n user_id: userId || options?.user_id,\n device_id: options?.device_id\n };\n this.runMiddleware({ event, extra }, payload => {\n if (payload.event.user_id) {\n this.amplitude?.setUserId(payload.event.user_id);\n }\n if (payload.event.device_id) {\n this.amplitude?.setDeviceId(payload.event.device_id);\n }\n\n this._identify(payload.event, options);\n });\n }\n\n _identify(event, options) {\n const ampIdentify = new amplitude.Identify();\n if (event.event_properties != null) {\n for (const [key, value] of Object.entries(event.event_properties)) {\n ampIdentify.set(key, value);\n }\n }\n this.amplitude.identify(\n ampIdentify,\n options?.callback,\n options?.errorCallback\n );\n }\n\n /**\n * Set Group for the current user\n *\n * @param {String} name\n * @param {String|String[]} value\n * @param {GroupOptions} [options]\n * @param {MiddlewareExtra} [extra]\n */\n setGroup(name, value, options, extra) {\n if (!this.isInitializedAndEnabled()) {\n return;\n }\n\n this.amplitude?.setGroup(name, value);\n }\n\n /**\n * Identify a group.\n *\n * @param {string} groupType The group type.\n * @param {string|string[]} groupName The group name.\n * @param {GroupOptions} [options] Options for this groupIdentify call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n groupIdentify(groupType, groupName, options, extra) {\n if (!this.isInitializedAndEnabled()) {\n return;\n }\n\n const event = {\n event_type: SpecialEventType.Group,\n user_id: options?.user_id,\n device_id: options?.device_id\n };\n this.runMiddleware({ event, extra }, payload => {\n const e = payload.event;\n if (e.user_id) {\n this.amplitude.setUserId(e.user_id);\n }\n if (e.device_id) {\n this.amplitude.setDeviceId(e.device_id);\n }\n const amplitudeIdentify = new amplitude.Identify();\n if (e.event_properties != null) {\n for (const [key, value] of Object.entries(e.event_properties)) {\n amplitudeIdentify.set(key, value);\n }\n }\n this.amplitude.groupIdentify(groupType, groupName, amplitudeIdentify, options?.callback);\n });\n }\n\n /**\n * Track event\n *\n * @param {BaseEvent} event The event to track.\n * @param {EventOptions} [options] Optional event options.\n * @param {MiddlewareExtra} [extra] Extra unstructured data for middleware.\n */\n track(event, options, extra) {\n if (!this.isInitializedAndEnabled()) {\n return;\n }\n\n const trackEvent = { ...event, ...options };\n this.runMiddleware({ event: trackEvent, extra }, payload => {\n if (payload.event.user_id) {\n this.amplitude?.setUserId(payload.event.user_id);\n }\n if (payload.event.device_id) {\n this.amplitude?.setDeviceId(payload.event.device_id);\n }\n\n const userProperties = payload.event.user_properties;\n if (userProperties) {\n const identifyEvent = {\n event_type: SpecialEventType.Identify,\n event_properties: userProperties,\n user_id: payload.event.user_id,\n device_id: payload.event.device_id\n };\n this._identify(identifyEvent, options);\n }\n\n this.amplitude.logEvent(\n payload.event.event_type,\n payload.event.event_properties,\n options?.callback,\n options?.errorCallback,\n );\n });\n }\n\n /**\n * admin_registration_intended\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/admin_registration_intended)\n *\n * Admin sign up form clicked \n *\n * Owner: geri@octopuslabs.com\n *\n * @param {Object} [properties] The event's properties.\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n adminRegistrationIntended(properties, options, extra) {\n this.track(new AdminRegistrationIntended(properties), options, extra);\n }\n\n /**\n * back_button_clicked\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/back_button_clicked)\n *\n * Login password page, back button is pressed \n *\n * Owner: geri@octopuslabs.com\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.di_con_entered] Property has no description in tracking plan.\n * @param {string} [properties.di_email_entered] Property has no description in tracking plan.\n * @param {'application_flow'|'applications_page'|'apply_portal'|'check_email_page'|'client_details_page'|'client_list_export_button'|'client_list_page'|'con_page'|'dashboard_illustrations'|'enter_password_page'|'illustration_page'|'link_expired_page'|'locked_out_page'|'my_account'|'other'|'page_404'|'page_500'|'product_page'|'reports_page'|'resource_centre'|'savings_homepage'|'scv_accounts'|'scv_communications'|'scv_deal_comms'|'scv_documents'|'set_password_page'|'sign_up_login_page'|'single_client_view'|'single_portfolio_view'|'spv_adviser_charges'|'spv_cash_statements'|'spv_certificates'|'spv_dividends'|'spv_export_button'|'spv_trading_statements'|'spv_transactions'|'spv_valuations'|'spv_vct_valuation'|'top_nav'|'welcome_page'|'commission_statements'|'commission_statements_payment_amount'|'resources_page'|'webinar_event_page'|'bottom_nav'|'promo_box'|'business_line_page'|'reset_password_page'|'scv'|'fgvct_product_page'|'spv_contributions'|'scv_portfolio_stories'|'spv'|'company_page'|'scv_portfolios'|'illustrations_modal'|'application_investor_name'|'application_investment_details'|'application_summary'|'application_toast'|'application_adviser_name'|'maintenance_page'|'illustration_investment_details'|'illustration_summary'|'spv_recent_contributions'|'spv_pending_investment'|'application_investor_review'|'application_investor_fail'|'di_login_page'|'di_create_password_page'|'home_page'|'di_confirm_account_number'|'di_check_your_email_page'|'illustration_investment_details_page'|'illustrations_summary'|'di_login_page_error'|'illustration_investor_name'|'my_account_security'|'mfa_register_for_mfa'|'mfa_register_error_page'} [properties.location] The page and/or element (e.g. home_nav ; home_main ; clients_nav etc.) where a customer acess takes place\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n backButtonClicked(properties, options, extra) {\n this.track(new BackButtonClicked(properties), options, extra);\n }\n\n /**\n * beacon_article_viewed\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/beacon_article_viewed)\n *\n * Called when a user clicks into an article in the Beacon modal\n *\n * Owner: Sam Bravery\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.article_id] The id of the knowledge base article clicked\n * @param {'application_flow'|'applications_page'|'apply_portal'|'check_email_page'|'client_details_page'|'client_list_export_button'|'client_list_page'|'con_page'|'dashboard_illustrations'|'enter_password_page'|'illustration_page'|'link_expired_page'|'locked_out_page'|'my_account'|'other'|'page_404'|'page_500'|'product_page'|'reports_page'|'resource_centre'|'savings_homepage'|'scv_accounts'|'scv_communications'|'scv_deal_comms'|'scv_documents'|'set_password_page'|'sign_up_login_page'|'single_client_view'|'single_portfolio_view'|'spv_adviser_charges'|'spv_cash_statements'|'spv_certificates'|'spv_dividends'|'spv_export_button'|'spv_trading_statements'|'spv_transactions'|'spv_valuations'|'spv_vct_valuation'|'top_nav'|'welcome_page'|'commission_statements'|'commission_statements_payment_amount'|'resources_page'|'webinar_event_page'|'bottom_nav'|'promo_box'|'business_line_page'|'reset_password_page'|'scv'|'fgvct_product_page'|'spv_contributions'|'scv_portfolio_stories'|'spv'|'company_page'|'scv_portfolios'|'illustrations_modal'|'application_investor_name'|'application_investment_details'|'application_summary'|'application_toast'|'application_adviser_name'|'maintenance_page'|'illustration_investment_details'|'illustration_summary'|'spv_recent_contributions'|'spv_pending_investment'|'application_investor_review'|'application_investor_fail'|'di_login_page'|'di_create_password_page'|'home_page'|'di_confirm_account_number'|'di_check_your_email_page'|'illustration_investment_details_page'|'illustrations_summary'|'di_login_page_error'|'illustration_investor_name'|'my_account_security'|'mfa_register_for_mfa'|'mfa_register_error_page'} [properties.location] The page and/or element (e.g. home_nav ; home_main ; clients_nav etc.) where a customer acess takes place\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n beaconArticleViewed(properties, options, extra) {\n this.track(new BeaconArticleViewed(properties), options, extra);\n }\n\n /**\n * beacon_clicked\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/beacon_clicked)\n *\n * Called when a user clicks the Beacon 'help' button\n *\n * Owner: Sam Bravery\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.di_email_entered] Property has no description in tracking plan.\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n beaconClicked(properties, options, extra) {\n this.track(new BeaconClicked(properties), options, extra);\n }\n\n /**\n * beacon_closed\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/beacon_closed)\n *\n * Called when a user closes the Beacon modal\n *\n * Owner: Sam Bravery\n *\n * @param {Object} [properties] The event's properties.\n * @param {'application_flow'|'applications_page'|'apply_portal'|'check_email_page'|'client_details_page'|'client_list_export_button'|'client_list_page'|'con_page'|'dashboard_illustrations'|'enter_password_page'|'illustration_page'|'link_expired_page'|'locked_out_page'|'my_account'|'other'|'page_404'|'page_500'|'product_page'|'reports_page'|'resource_centre'|'savings_homepage'|'scv_accounts'|'scv_communications'|'scv_deal_comms'|'scv_documents'|'set_password_page'|'sign_up_login_page'|'single_client_view'|'single_portfolio_view'|'spv_adviser_charges'|'spv_cash_statements'|'spv_certificates'|'spv_dividends'|'spv_export_button'|'spv_trading_statements'|'spv_transactions'|'spv_valuations'|'spv_vct_valuation'|'top_nav'|'welcome_page'|'commission_statements'|'commission_statements_payment_amount'|'resources_page'|'webinar_event_page'|'bottom_nav'|'promo_box'|'business_line_page'|'reset_password_page'|'scv'|'fgvct_product_page'|'spv_contributions'|'scv_portfolio_stories'|'spv'|'company_page'|'scv_portfolios'|'illustrations_modal'|'application_investor_name'|'application_investment_details'|'application_summary'|'application_toast'|'application_adviser_name'|'maintenance_page'|'illustration_investment_details'|'illustration_summary'|'spv_recent_contributions'|'spv_pending_investment'|'application_investor_review'|'application_investor_fail'|'di_login_page'|'di_create_password_page'|'home_page'|'di_confirm_account_number'|'di_check_your_email_page'|'illustration_investment_details_page'|'illustrations_summary'|'di_login_page_error'|'illustration_investor_name'|'my_account_security'|'mfa_register_for_mfa'|'mfa_register_error_page'} [properties.location] The page and/or element (e.g. home_nav ; home_main ; clients_nav etc.) where a customer acess takes place\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n beaconClosed(properties, options, extra) {\n this.track(new BeaconClosed(properties), options, extra);\n }\n\n /**\n * beacon_email_sent\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/beacon_email_sent)\n *\n * Called when a user sends a support query via Beacon\n *\n * Owner: Sam Bravery\n *\n * @param {Object} [properties] The event's properties.\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n beaconEmailSent(properties, options, extra) {\n this.track(new BeaconEmailSent(properties), options, extra);\n }\n\n /**\n * beacon_searched\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/beacon_searched)\n *\n * Called when a user searchs for an article in the Beacon modal\n *\n * Owner: Sam Bravery\n *\n * @param {Object} [properties] The event's properties.\n * @param {'scv'|'client_list'|'investment_details'|'illustration_investment_details'|'application_investment_details'} [properties.destination] The page the user navigates to\n * @param {string} [properties.search_content] what the user is searching for - the string of characters in the input value when dropdown is closed\n * @param {'clients'|'amount'|'advisers'} [properties.search_type] What is the user searching for\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {boolean} [properties.successful] Has the customer successfully selected an item from the dropdown\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n beaconSearched(properties, options, extra) {\n this.track(new BeaconSearched(properties), options, extra);\n }\n\n /**\n * content_nav_clicked\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/content_nav_clicked)\n *\n * Called when a user navigates within OO using navigation in the content e.g. breadcrumb\n *\n * Owner: Sam Bravery\n *\n * @param {Object} [properties] The event's properties.\n * @param {'application_flow'|'applications_page'|'apply_portal'|'check_email_page'|'client_details_page'|'client_list_export_button'|'client_list_page'|'con_page'|'dashboard_illustrations'|'enter_password_page'|'illustration_page'|'link_expired_page'|'locked_out_page'|'my_account'|'other'|'page_404'|'page_500'|'product_page'|'reports_page'|'resource_centre'|'savings_homepage'|'scv_accounts'|'scv_communications'|'scv_deal_comms'|'scv_documents'|'set_password_page'|'sign_up_login_page'|'single_client_view'|'single_portfolio_view'|'spv_adviser_charges'|'spv_cash_statements'|'spv_certificates'|'spv_dividends'|'spv_export_button'|'spv_trading_statements'|'spv_transactions'|'spv_valuations'|'spv_vct_valuation'|'top_nav'|'welcome_page'|'commission_statements'|'commission_statements_payment_amount'|'resources_page'|'webinar_event_page'|'bottom_nav'|'promo_box'|'business_line_page'|'reset_password_page'|'scv'|'fgvct_product_page'|'spv_contributions'|'scv_portfolio_stories'|'spv'|'company_page'|'scv_portfolios'|'illustrations_modal'|'application_investor_name'|'application_investment_details'|'application_summary'|'application_toast'|'application_adviser_name'|'maintenance_page'|'illustration_investment_details'|'illustration_summary'|'spv_recent_contributions'|'spv_pending_investment'|'application_investor_review'|'application_investor_fail'|'di_login_page'|'di_create_password_page'|'home_page'|'di_confirm_account_number'|'di_check_your_email_page'|'illustration_investment_details_page'|'illustrations_summary'|'di_login_page_error'|'illustration_investor_name'|'my_account_security'|'mfa_register_for_mfa'|'mfa_register_error_page'} [properties.location] The page and/or element (e.g. home_nav ; home_main ; clients_nav etc.) where a customer acess takes place\n * @param {'Account information'|'Back to Clients'|'Back to Investments'|'Breadcrumb Client Name'|'Breadcrumb My Clients'|'Discover more'|'Future Gen back to Portfolio Stories'|'Portfolio Stories'|'FGVCT Product page'|'Close icon'|'New snippet'|'New tab'|'Back to my account'|'Try again'} [properties.navigation_type] the method of navigation\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n contentNavClicked(properties, options, extra) {\n this.track(new ContentNavClicked(properties), options, extra);\n }\n\n /**\n * embedded_beacon_clicked\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/embedded_beacon_clicked)\n *\n * Called when a user clicks on an embedded beacon article link\n *\n * Owner: Sam Bravery\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.article_id] The id of the knowledge base article clicked\n * @param {'beacon - no clients'|'mailto:support@octopusinvestments.com'|'secure portal'|'fgvct_simon_rogerson'|'fgvct_octopus_giving'|'0800 316 2295'|'beacon - tab error'|'new_investor'|'change_details'|'missing_fields'|'beacon'|'new_adviser'|'continue_new_investor'|'continue_missing_fields'|'0800 316 2067'|'mfa_microsoft'|'mfa_google'|'beacon_mfa_contact'} [properties.external_link_clicked] The external link clicked\n * @param {'application_flow'|'applications_page'|'apply_portal'|'check_email_page'|'client_details_page'|'client_list_export_button'|'client_list_page'|'con_page'|'dashboard_illustrations'|'enter_password_page'|'illustration_page'|'link_expired_page'|'locked_out_page'|'my_account'|'other'|'page_404'|'page_500'|'product_page'|'reports_page'|'resource_centre'|'savings_homepage'|'scv_accounts'|'scv_communications'|'scv_deal_comms'|'scv_documents'|'set_password_page'|'sign_up_login_page'|'single_client_view'|'single_portfolio_view'|'spv_adviser_charges'|'spv_cash_statements'|'spv_certificates'|'spv_dividends'|'spv_export_button'|'spv_trading_statements'|'spv_transactions'|'spv_valuations'|'spv_vct_valuation'|'top_nav'|'welcome_page'|'commission_statements'|'commission_statements_payment_amount'|'resources_page'|'webinar_event_page'|'bottom_nav'|'promo_box'|'business_line_page'|'reset_password_page'|'scv'|'fgvct_product_page'|'spv_contributions'|'scv_portfolio_stories'|'spv'|'company_page'|'scv_portfolios'|'illustrations_modal'|'application_investor_name'|'application_investment_details'|'application_summary'|'application_toast'|'application_adviser_name'|'maintenance_page'|'illustration_investment_details'|'illustration_summary'|'spv_recent_contributions'|'spv_pending_investment'|'application_investor_review'|'application_investor_fail'|'di_login_page'|'di_create_password_page'|'home_page'|'di_confirm_account_number'|'di_check_your_email_page'|'illustration_investment_details_page'|'illustrations_summary'|'di_login_page_error'|'illustration_investor_name'|'my_account_security'|'mfa_register_for_mfa'|'mfa_register_error_page'} [properties.location] The page and/or element (e.g. home_nav ; home_main ; clients_nav etc.) where a customer acess takes place\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n embeddedBeaconClicked(properties, options, extra) {\n this.track(new EmbeddedBeaconClicked(properties), options, extra);\n }\n\n /**\n * error_encountered\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/error_encountered)\n *\n * Called when a user encouters an error -e.g. 500 or 404\n *\n * Owner: Sam Bravery\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.error_code] A value we will sent, that means something e.g. Page not found, document not found etc.\n * @param {string} [properties.error_message] The description of the error - extra details\n * @param {string} [properties.error_name] The \"Redux store object name\" that identifies the error in the codebase\n * @param {string} [properties.error_referrer] The page the user was on when they encountered the error - e.g. https://portal.octopusinvestments.com/clients\n * @param {number} [properties.error_status] e.g 500; 404 etc.\n * @param {'application_flow'|'applications_page'|'apply_portal'|'check_email_page'|'client_details_page'|'client_list_export_button'|'client_list_page'|'con_page'|'dashboard_illustrations'|'enter_password_page'|'illustration_page'|'link_expired_page'|'locked_out_page'|'my_account'|'other'|'page_404'|'page_500'|'product_page'|'reports_page'|'resource_centre'|'savings_homepage'|'scv_accounts'|'scv_communications'|'scv_deal_comms'|'scv_documents'|'set_password_page'|'sign_up_login_page'|'single_client_view'|'single_portfolio_view'|'spv_adviser_charges'|'spv_cash_statements'|'spv_certificates'|'spv_dividends'|'spv_export_button'|'spv_trading_statements'|'spv_transactions'|'spv_valuations'|'spv_vct_valuation'|'top_nav'|'welcome_page'|'commission_statements'|'commission_statements_payment_amount'|'resources_page'|'webinar_event_page'|'bottom_nav'|'promo_box'|'business_line_page'|'reset_password_page'|'scv'|'fgvct_product_page'|'spv_contributions'|'scv_portfolio_stories'|'spv'|'company_page'|'scv_portfolios'|'illustrations_modal'|'application_investor_name'|'application_investment_details'|'application_summary'|'application_toast'|'application_adviser_name'|'maintenance_page'|'illustration_investment_details'|'illustration_summary'|'spv_recent_contributions'|'spv_pending_investment'|'application_investor_review'|'application_investor_fail'|'di_login_page'|'di_create_password_page'|'home_page'|'di_confirm_account_number'|'di_check_your_email_page'|'illustration_investment_details_page'|'illustrations_summary'|'di_login_page_error'|'illustration_investor_name'|'my_account_security'|'mfa_register_for_mfa'|'mfa_register_error_page'} [properties.location] The page and/or element (e.g. home_nav ; home_main ; clients_nav etc.) where a customer acess takes place\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n errorEncountered(properties, options, extra) {\n this.track(new ErrorEncountered(properties), options, extra);\n }\n\n /**\n * external_link_clicked\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/external_link_clicked)\n *\n * Called when a user clicks on an external link\n *\n * Owner: Sam Bravery\n *\n * @param {Object} [properties] The event's properties.\n * @param {'beacon - no clients'|'mailto:support@octopusinvestments.com'|'secure portal'|'fgvct_simon_rogerson'|'fgvct_octopus_giving'|'0800 316 2295'|'beacon - tab error'|'new_investor'|'change_details'|'missing_fields'|'beacon'|'new_adviser'|'continue_new_investor'|'continue_missing_fields'|'0800 316 2067'|'mfa_microsoft'|'mfa_google'|'beacon_mfa_contact'} [properties.external_link_clicked] The external link clicked\n * @param {'application_flow'|'applications_page'|'apply_portal'|'check_email_page'|'client_details_page'|'client_list_export_button'|'client_list_page'|'con_page'|'dashboard_illustrations'|'enter_password_page'|'illustration_page'|'link_expired_page'|'locked_out_page'|'my_account'|'other'|'page_404'|'page_500'|'product_page'|'reports_page'|'resource_centre'|'savings_homepage'|'scv_accounts'|'scv_communications'|'scv_deal_comms'|'scv_documents'|'set_password_page'|'sign_up_login_page'|'single_client_view'|'single_portfolio_view'|'spv_adviser_charges'|'spv_cash_statements'|'spv_certificates'|'spv_dividends'|'spv_export_button'|'spv_trading_statements'|'spv_transactions'|'spv_valuations'|'spv_vct_valuation'|'top_nav'|'welcome_page'|'commission_statements'|'commission_statements_payment_amount'|'resources_page'|'webinar_event_page'|'bottom_nav'|'promo_box'|'business_line_page'|'reset_password_page'|'scv'|'fgvct_product_page'|'spv_contributions'|'scv_portfolio_stories'|'spv'|'company_page'|'scv_portfolios'|'illustrations_modal'|'application_investor_name'|'application_investment_details'|'application_summary'|'application_toast'|'application_adviser_name'|'maintenance_page'|'illustration_investment_details'|'illustration_summary'|'spv_recent_contributions'|'spv_pending_investment'|'application_investor_review'|'application_investor_fail'|'di_login_page'|'di_create_password_page'|'home_page'|'di_confirm_account_number'|'di_check_your_email_page'|'illustration_investment_details_page'|'illustrations_summary'|'di_login_page_error'|'illustration_investor_name'|'my_account_security'|'mfa_register_for_mfa'|'mfa_register_error_page'} [properties.location] The page and/or element (e.g. home_nav ; home_main ; clients_nav etc.) where a customer acess takes place\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n externalLinkClicked(properties, options, extra) {\n this.track(new ExternalLinkClicked(properties), options, extra);\n }\n\n /**\n * eye_icon_clicked\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/eye_icon_clicked)\n *\n * Create password/login page click eye icon \n *\n * Owner: geri@octopuslabs.com\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.di_email_entered] Property has no description in tracking plan.\n * @param {'application_flow'|'applications_page'|'apply_portal'|'check_email_page'|'client_details_page'|'client_list_export_button'|'client_list_page'|'con_page'|'dashboard_illustrations'|'enter_password_page'|'illustration_page'|'link_expired_page'|'locked_out_page'|'my_account'|'other'|'page_404'|'page_500'|'product_page'|'reports_page'|'resource_centre'|'savings_homepage'|'scv_accounts'|'scv_communications'|'scv_deal_comms'|'scv_documents'|'set_password_page'|'sign_up_login_page'|'single_client_view'|'single_portfolio_view'|'spv_adviser_charges'|'spv_cash_statements'|'spv_certificates'|'spv_dividends'|'spv_export_button'|'spv_trading_statements'|'spv_transactions'|'spv_valuations'|'spv_vct_valuation'|'top_nav'|'welcome_page'|'commission_statements'|'commission_statements_payment_amount'|'resources_page'|'webinar_event_page'|'bottom_nav'|'promo_box'|'business_line_page'|'reset_password_page'|'scv'|'fgvct_product_page'|'spv_contributions'|'scv_portfolio_stories'|'spv'|'company_page'|'scv_portfolios'|'illustrations_modal'|'application_investor_name'|'application_investment_details'|'application_summary'|'application_toast'|'application_adviser_name'|'maintenance_page'|'illustration_investment_details'|'illustration_summary'|'spv_recent_contributions'|'spv_pending_investment'|'application_investor_review'|'application_investor_fail'|'di_login_page'|'di_create_password_page'|'home_page'|'di_confirm_account_number'|'di_check_your_email_page'|'illustration_investment_details_page'|'illustrations_summary'|'di_login_page_error'|'illustration_investor_name'|'my_account_security'|'mfa_register_for_mfa'|'mfa_register_error_page'} [properties.location] The page and/or element (e.g. home_nav ; home_main ; clients_nav etc.) where a customer acess takes place\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n eyeIconClicked(properties, options, extra) {\n this.track(new EyeIconClicked(properties), options, extra);\n }\n\n /**\n * forgot_password_clicked\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/forgot_password_clicked)\n *\n * Called when a user clicks \"forgot password\"\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.di_con_entered] Property has no description in tracking plan.\n * @param {string} [properties.di_email_entered] Property has no description in tracking plan.\n * @param {'application_flow'|'applications_page'|'apply_portal'|'check_email_page'|'client_details_page'|'client_list_export_button'|'client_list_page'|'con_page'|'dashboard_illustrations'|'enter_password_page'|'illustration_page'|'link_expired_page'|'locked_out_page'|'my_account'|'other'|'page_404'|'page_500'|'product_page'|'reports_page'|'resource_centre'|'savings_homepage'|'scv_accounts'|'scv_communications'|'scv_deal_comms'|'scv_documents'|'set_password_page'|'sign_up_login_page'|'single_client_view'|'single_portfolio_view'|'spv_adviser_charges'|'spv_cash_statements'|'spv_certificates'|'spv_dividends'|'spv_export_button'|'spv_trading_statements'|'spv_transactions'|'spv_valuations'|'spv_vct_valuation'|'top_nav'|'welcome_page'|'commission_statements'|'commission_statements_payment_amount'|'resources_page'|'webinar_event_page'|'bottom_nav'|'promo_box'|'business_line_page'|'reset_password_page'|'scv'|'fgvct_product_page'|'spv_contributions'|'scv_portfolio_stories'|'spv'|'company_page'|'scv_portfolios'|'illustrations_modal'|'application_investor_name'|'application_investment_details'|'application_summary'|'application_toast'|'application_adviser_name'|'maintenance_page'|'illustration_investment_details'|'illustration_summary'|'spv_recent_contributions'|'spv_pending_investment'|'application_investor_review'|'application_investor_fail'|'di_login_page'|'di_create_password_page'|'home_page'|'di_confirm_account_number'|'di_check_your_email_page'|'illustration_investment_details_page'|'illustrations_summary'|'di_login_page_error'|'illustration_investor_name'|'my_account_security'|'mfa_register_for_mfa'|'mfa_register_error_page'} [properties.location] The page and/or element (e.g. home_nav ; home_main ; clients_nav etc.) where a customer acess takes place\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n forgotPasswordClicked(properties, options, extra) {\n this.track(new ForgotPasswordClicked(properties), options, extra);\n }\n\n /**\n * link_expired_clicked\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/link_expired_clicked)\n *\n * Link has expired page email filled and press send new link\n *\n * Owner: geri@octopuslabs.com\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.email] the email address of the user\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n linkExpiredClicked(properties, options, extra) {\n this.track(new LinkExpiredClicked(properties), options, extra);\n }\n\n /**\n * login_completed\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/login_completed)\n *\n * Login page email and password verified and user clicks login\n *\n * Owner: geri@octopuslabs.com\n *\n * @param {Object} properties The event's properties.\n * @param {'locked temp'|'permanent lock'|'successful'|'expired'|'input error'|'server error'|'unregistered'} [properties.di_status] Statuses can be locked temp, permanent lock, successful, expired, input error, server error\n * @param {string} properties.email Property has no description in tracking plan.\n * @param {boolean} [properties.is_user_registered] Check whether user attempted to Login is already Registered (Y/N)\n * @param {boolean} [properties.mfa_status] Has the customer got MFA enabled\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n loginCompleted(properties, options, extra) {\n this.track(new LoginCompleted(properties), options, extra);\n }\n\n /**\n * login_intended\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/login_intended)\n *\n * Called when a user presses \"Login\"\n *\n * Owner: geri@octopuslabs.com\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.di_con_entered] Property has no description in tracking plan.\n * @param {string} [properties.di_email_entered] Property has no description in tracking plan.\n * @param {'locked temp'|'permanent lock'|'successful'|'expired'|'input error'|'server error'|'unregistered'} [properties.di_status] Statuses can be locked temp, permanent lock, successful, expired, input error, server error\n * @param {boolean} [properties.is_user_registered] Check whether user attempted to Login is already Registered (Y/N)\n * @param {boolean} [properties.mfa_status] Has the customer got MFA enabled\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n loginIntended(properties, options, extra) {\n this.track(new LoginIntended(properties), options, extra);\n }\n\n /**\n * login_link_clicked\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/login_link_clicked)\n *\n * Called when a user tried to generate a \"Remind me my CON\" link to an already registered email, then clicks \"login\" on the prompt\n *\n * Owner: Sam Bravery\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.di_con_entered] Property has no description in tracking plan.\n * @param {string} [properties.di_email_entered] Property has no description in tracking plan.\n * @param {'application_flow'|'applications_page'|'apply_portal'|'check_email_page'|'client_details_page'|'client_list_export_button'|'client_list_page'|'con_page'|'dashboard_illustrations'|'enter_password_page'|'illustration_page'|'link_expired_page'|'locked_out_page'|'my_account'|'other'|'page_404'|'page_500'|'product_page'|'reports_page'|'resource_centre'|'savings_homepage'|'scv_accounts'|'scv_communications'|'scv_deal_comms'|'scv_documents'|'set_password_page'|'sign_up_login_page'|'single_client_view'|'single_portfolio_view'|'spv_adviser_charges'|'spv_cash_statements'|'spv_certificates'|'spv_dividends'|'spv_export_button'|'spv_trading_statements'|'spv_transactions'|'spv_valuations'|'spv_vct_valuation'|'top_nav'|'welcome_page'|'commission_statements'|'commission_statements_payment_amount'|'resources_page'|'webinar_event_page'|'bottom_nav'|'promo_box'|'business_line_page'|'reset_password_page'|'scv'|'fgvct_product_page'|'spv_contributions'|'scv_portfolio_stories'|'spv'|'company_page'|'scv_portfolios'|'illustrations_modal'|'application_investor_name'|'application_investment_details'|'application_summary'|'application_toast'|'application_adviser_name'|'maintenance_page'|'illustration_investment_details'|'illustration_summary'|'spv_recent_contributions'|'spv_pending_investment'|'application_investor_review'|'application_investor_fail'|'di_login_page'|'di_create_password_page'|'home_page'|'di_confirm_account_number'|'di_check_your_email_page'|'illustration_investment_details_page'|'illustrations_summary'|'di_login_page_error'|'illustration_investor_name'|'my_account_security'|'mfa_register_for_mfa'|'mfa_register_error_page'} [properties.location] The page and/or element (e.g. home_nav ; home_main ; clients_nav etc.) where a customer acess takes place\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n loginLinkClicked(properties, options, extra) {\n this.track(new LoginLinkClicked(properties), options, extra);\n }\n\n /**\n * login_next_clicked\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/login_next_clicked)\n *\n * Called when a user presses the \"Next\" button after they've entered both their email & password; **and** they have MFA enabled so they will still need to enter their code\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.di_con_entered] Property has no description in tracking plan.\n * @param {boolean} [properties.di_email_criteria_met] Incorrect OR correct\n * @param {string} [properties.di_email_entered] Property has no description in tracking plan.\n * @param {boolean} [properties.di_password_criteria_met] Property has no description in tracking plan.\n * @param {boolean} [properties.di_passwords_match] True or False\n * @param {'locked temp'|'permanent lock'|'successful'|'expired'|'input error'|'server error'|'unregistered'} [properties.di_status] Statuses can be locked temp, permanent lock, successful, expired, input error, server error\n * @param {boolean} [properties.is_user_registered] Check whether user attempted to Login is already Registered (Y/N)\n * @param {boolean} [properties.mfa_status] Has the customer got MFA enabled\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n loginNextClicked(properties, options, extra) {\n this.track(new LoginNextClicked(properties), options, extra);\n }\n\n /**\n * login_registration_intended\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/login_registration_intended)\n *\n * Called when a user presses the \"Next\" button on the \"Log in or create an account\" page after entering their email\n *\n * Owner: geri@octopuslabs.com\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.di_con_entered] Property has no description in tracking plan.\n * @param {boolean} [properties.di_email_criteria_met] Incorrect OR correct\n * @param {string} [properties.di_email_entered] Property has no description in tracking plan.\n * @param {boolean} [properties.di_password_criteria_met] Property has no description in tracking plan.\n * @param {boolean} [properties.di_passwords_match] True or False\n * @param {'locked temp'|'permanent lock'|'successful'|'expired'|'input error'|'server error'|'unregistered'} [properties.di_status] Statuses can be locked temp, permanent lock, successful, expired, input error, server error\n * @param {boolean} [properties.is_user_registered] Check whether user attempted to Login is already Registered (Y/N)\n * @param {boolean} [properties.mfa_status] Has the customer got MFA enabled\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n loginRegistrationIntended(properties, options, extra) {\n this.track(new LoginRegistrationIntended(properties), options, extra);\n }\n\n /**\n * mfa_passkey_copied\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/mfa_passkey_copied)\n *\n * Called when a customer copies the passkey from the MFA flow\n *\n * @param {Object} [properties] The event's properties.\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n mfaPasskeyCopied(properties, options, extra) {\n this.track(new MfaPasskeyCopied(properties), options, extra);\n }\n\n /**\n * mfa_verify_clicked\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/mfa_verify_clicked)\n *\n * Called when a customer clicks \"Verify\" in the \"Register for \"Multi-Factor Authentication\" page in DI\n *\n * @param {Object} [properties] The event's properties.\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n mfaVerifyClicked(properties, options, extra) {\n this.track(new MfaVerifyClicked(properties), options, extra);\n }\n\n /**\n * mfa_registration_completed\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/mfa_registration_completed)\n *\n * Called when a customer successfully register for \"Multi-Factor Authentication\" page in DI\n *\n * @param {Object} [properties] The event's properties.\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n mfaRegistrationCompleted(properties, options, extra) {\n this.track(new MfaRegistrationCompleted(properties), options, extra);\n }\n\n /**\n * mfa_registration_failed\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/mfa_registration_completed)\n *\n * Called when a customer registration \"failed\" for \"Multi-Factor Authentication\" page in DI\n *\n * @param {Object} [properties] The event's properties.\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n mfaRegistrationFailed(properties, options, extra) {\n this.track(new MfaRegistrationFailed(properties), options, extra);\n }\n\n /**\n * password_created\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/password_created)\n *\n * Called when a user successfully creates their password\n *\n * Owner: Sam Bravery\n *\n * @param {Object} [properties] The event's properties.\n * @param {'locked temp'|'permanent lock'|'successful'|'expired'|'input error'|'server error'|'unregistered'} [properties.di_status] Statuses can be locked temp, permanent lock, successful, expired, input error, server error\n * @param {string} [properties.email] the email address of the user\n * @param {boolean} [properties.is_user_registered] Check whether user attempted to Login is already Registered (Y/N)\n * @param {'application_flow'|'applications_page'|'apply_portal'|'check_email_page'|'client_details_page'|'client_list_export_button'|'client_list_page'|'con_page'|'dashboard_illustrations'|'enter_password_page'|'illustration_page'|'link_expired_page'|'locked_out_page'|'my_account'|'other'|'page_404'|'page_500'|'product_page'|'reports_page'|'resource_centre'|'savings_homepage'|'scv_accounts'|'scv_communications'|'scv_deal_comms'|'scv_documents'|'set_password_page'|'sign_up_login_page'|'single_client_view'|'single_portfolio_view'|'spv_adviser_charges'|'spv_cash_statements'|'spv_certificates'|'spv_dividends'|'spv_export_button'|'spv_trading_statements'|'spv_transactions'|'spv_valuations'|'spv_vct_valuation'|'top_nav'|'welcome_page'|'commission_statements'|'commission_statements_payment_amount'|'resources_page'|'webinar_event_page'|'bottom_nav'|'promo_box'|'business_line_page'|'reset_password_page'|'scv'|'fgvct_product_page'|'spv_contributions'|'scv_portfolio_stories'|'spv'|'company_page'|'scv_portfolios'|'illustrations_modal'|'application_investor_name'|'application_investment_details'|'application_summary'|'application_toast'|'application_adviser_name'|'maintenance_page'|'illustration_investment_details'|'illustration_summary'|'spv_recent_contributions'|'spv_pending_investment'|'application_investor_review'|'application_investor_fail'|'di_login_page'|'di_create_password_page'|'home_page'|'di_confirm_account_number'|'di_check_your_email_page'|'illustration_investment_details_page'|'illustrations_summary'|'di_login_page_error'|'illustration_investor_name'|'my_account_security'|'mfa_register_for_mfa'|'mfa_register_error_page'} [properties.location] The page and/or element (e.g. home_nav ; home_main ; clients_nav etc.) where a customer acess takes place\n * @param {boolean} [properties.mfa_status] Has the customer got MFA enabled\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n passwordCreated(properties, options, extra) {\n this.track(new PasswordCreated(properties), options, extra);\n }\n\n /**\n * password_set_intended\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/password_set_intended)\n *\n * Passwords match and \"create password\" button is clicked\n *\n * Owner: geri@octopuslabs.com\n *\n * @param {Object} [properties] The event's properties.\n * @param {boolean} [properties.di_email_criteria_met] Incorrect OR correct\n * @param {boolean} [properties.di_password_criteria_met] Property has no description in tracking plan.\n * @param {boolean} [properties.di_passwords_match] True or False\n * @param {'locked temp'|'permanent lock'|'successful'|'expired'|'input error'|'server error'|'unregistered'} [properties.di_status] Statuses can be locked temp, permanent lock, successful, expired, input error, server error\n * @param {boolean} [properties.is_user_registered] Check whether user attempted to Login is already Registered (Y/N)\n * @param {'application_flow'|'applications_page'|'apply_portal'|'check_email_page'|'client_details_page'|'client_list_export_button'|'client_list_page'|'con_page'|'dashboard_illustrations'|'enter_password_page'|'illustration_page'|'link_expired_page'|'locked_out_page'|'my_account'|'other'|'page_404'|'page_500'|'product_page'|'reports_page'|'resource_centre'|'savings_homepage'|'scv_accounts'|'scv_communications'|'scv_deal_comms'|'scv_documents'|'set_password_page'|'sign_up_login_page'|'single_client_view'|'single_portfolio_view'|'spv_adviser_charges'|'spv_cash_statements'|'spv_certificates'|'spv_dividends'|'spv_export_button'|'spv_trading_statements'|'spv_transactions'|'spv_valuations'|'spv_vct_valuation'|'top_nav'|'welcome_page'|'commission_statements'|'commission_statements_payment_amount'|'resources_page'|'webinar_event_page'|'bottom_nav'|'promo_box'|'business_line_page'|'reset_password_page'|'scv'|'fgvct_product_page'|'spv_contributions'|'scv_portfolio_stories'|'spv'|'company_page'|'scv_portfolios'|'illustrations_modal'|'application_investor_name'|'application_investment_details'|'application_summary'|'application_toast'|'application_adviser_name'|'maintenance_page'|'illustration_investment_details'|'illustration_summary'|'spv_recent_contributions'|'spv_pending_investment'|'application_investor_review'|'application_investor_fail'|'di_login_page'|'di_create_password_page'|'home_page'|'di_confirm_account_number'|'di_check_your_email_page'|'illustration_investment_details_page'|'illustrations_summary'|'di_login_page_error'|'illustration_investor_name'|'my_account_security'|'mfa_register_for_mfa'|'mfa_register_error_page'} [properties.location] The page and/or element (e.g. home_nav ; home_main ; clients_nav etc.) where a customer acess takes place\n * @param {boolean} [properties.mfa_status] Has the customer got MFA enabled\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n passwordSetIntended(properties, options, extra) {\n this.track(new PasswordSetIntended(properties), options, extra);\n }\n\n /**\n * privacy_policy_clicked\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/privacy_policy_clicked)\n *\n * User click on privacy policy\n *\n * Owner: geri@octopuslabs.com\n *\n * @param {Object} [properties] The event's properties.\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n privacyPolicyClicked(properties, options, extra) {\n this.track(new PrivacyPolicyClicked(properties), options, extra);\n }\n\n /**\n * registration_completed\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/registration_completed)\n *\n * Calls when a user enters a correct CON and presses \"Register\"\n *\n * Owner: geri@octopuslabs.com\n *\n * @param {Object} [properties] The event's properties.\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n registrationCompleted(properties, options, extra) {\n this.track(new RegistrationCompleted(properties), options, extra);\n }\n\n /**\n * resend_email_clicked\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/resend_email_clicked)\n *\n * This event tracks when a user clicks on the \"Resend Email\" button in the Login/Registration flow\n *\n * Owner: Sam Bravery\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.di_email_entered] Property has no description in tracking plan.\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n resendEmailClicked(properties, options, extra) {\n this.track(new ResendEmailClicked(properties), options, extra);\n }\n\n /**\n * send_account_number_reminder_cancelled\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/send_account_number_reminder_cancelled)\n *\n * Called when a user presses \"Cancel\" on the \"Send an account number reminder\" modal\n *\n * Owner: Sam Bravery\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.di_con_entered] Property has no description in tracking plan.\n * @param {string} [properties.di_email_entered] Property has no description in tracking plan.\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n sendAccountNumberReminderCancelled(properties, options, extra) {\n this.track(new SendAccountNumberReminderCancelled(properties), options, extra);\n }\n\n /**\n * send_account_number_reminder_clicked\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/send_account_number_reminder_clicked)\n *\n * Called when a customer clicks \"Send account number reminder flow\" on the \"Register with Octopus\" screen\n *\n * Owner: Sam Bravery\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.di_con_entered] Property has no description in tracking plan.\n * @param {string} [properties.di_email_entered] Property has no description in tracking plan.\n * @param {'application_flow'|'applications_page'|'apply_portal'|'check_email_page'|'client_details_page'|'client_list_export_button'|'client_list_page'|'con_page'|'dashboard_illustrations'|'enter_password_page'|'illustration_page'|'link_expired_page'|'locked_out_page'|'my_account'|'other'|'page_404'|'page_500'|'product_page'|'reports_page'|'resource_centre'|'savings_homepage'|'scv_accounts'|'scv_communications'|'scv_deal_comms'|'scv_documents'|'set_password_page'|'sign_up_login_page'|'single_client_view'|'single_portfolio_view'|'spv_adviser_charges'|'spv_cash_statements'|'spv_certificates'|'spv_dividends'|'spv_export_button'|'spv_trading_statements'|'spv_transactions'|'spv_valuations'|'spv_vct_valuation'|'top_nav'|'welcome_page'|'commission_statements'|'commission_statements_payment_amount'|'resources_page'|'webinar_event_page'|'bottom_nav'|'promo_box'|'business_line_page'|'reset_password_page'|'scv'|'fgvct_product_page'|'spv_contributions'|'scv_portfolio_stories'|'spv'|'company_page'|'scv_portfolios'|'illustrations_modal'|'application_investor_name'|'application_investment_details'|'application_summary'|'application_toast'|'application_adviser_name'|'maintenance_page'|'illustration_investment_details'|'illustration_summary'|'spv_recent_contributions'|'spv_pending_investment'|'application_investor_review'|'application_investor_fail'|'di_login_page'|'di_create_password_page'|'home_page'|'di_confirm_account_number'|'di_check_your_email_page'|'illustration_investment_details_page'|'illustrations_summary'|'di_login_page_error'|'illustration_investor_name'|'my_account_security'|'mfa_register_for_mfa'|'mfa_register_error_page'} [properties.location] The page and/or element (e.g. home_nav ; home_main ; clients_nav etc.) where a customer acess takes place\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n sendAccountNumberReminderClicked(properties, options, extra) {\n this.track(new SendAccountNumberReminderClicked(properties), options, extra);\n }\n\n /**\n * send_account_number_reminder_sent\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/send_account_number_reminder_sent)\n *\n * Called when a user presses \"Send reminder\" on the \"Send an account number reminder\" modal\n *\n * Owner: Sam Bravery\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.di_con_entered] Property has no description in tracking plan.\n * @param {boolean} [properties.di_email_criteria_met] Incorrect OR correct\n * @param {string} [properties.di_email_entered] Property has no description in tracking plan.\n * @param {boolean} [properties.di_password_criteria_met] Property has no description in tracking plan.\n * @param {boolean} [properties.di_passwords_match] True or False\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n sendAccountNumberReminderSent(properties, options, extra) {\n this.track(new SendAccountNumberReminderSent(properties), options, extra);\n }\n\n /**\n * terms_and_conditions_clicked\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/terms_and_conditions_clicked)\n *\n * User click on t&cs \n *\n * Owner: geri@octopuslabs.com\n *\n * @param {Object} [properties] The event's properties.\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n termsAndConditionsClicked(properties, options, extra) {\n this.track(new TermsAndConditionsClicked(properties), options, extra);\n }\n\n /**\n * tooltip_viewed\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/tooltip_viewed)\n *\n * Called when a user view a tooltip\n *\n * Owner: Sam Bravery\n *\n * @param {Object} [properties] The event's properties.\n * @param {'application_flow'|'applications_page'|'apply_portal'|'check_email_page'|'client_details_page'|'client_list_export_button'|'client_list_page'|'con_page'|'dashboard_illustrations'|'enter_password_page'|'illustration_page'|'link_expired_page'|'locked_out_page'|'my_account'|'other'|'page_404'|'page_500'|'product_page'|'reports_page'|'resource_centre'|'savings_homepage'|'scv_accounts'|'scv_communications'|'scv_deal_comms'|'scv_documents'|'set_password_page'|'sign_up_login_page'|'single_client_view'|'single_portfolio_view'|'spv_adviser_charges'|'spv_cash_statements'|'spv_certificates'|'spv_dividends'|'spv_export_button'|'spv_trading_statements'|'spv_transactions'|'spv_valuations'|'spv_vct_valuation'|'top_nav'|'welcome_page'|'commission_statements'|'commission_statements_payment_amount'|'resources_page'|'webinar_event_page'|'bottom_nav'|'promo_box'|'business_line_page'|'reset_password_page'|'scv'|'fgvct_product_page'|'spv_contributions'|'scv_portfolio_stories'|'spv'|'company_page'|'scv_portfolios'|'illustrations_modal'|'application_investor_name'|'application_investment_details'|'application_summary'|'application_toast'|'application_adviser_name'|'maintenance_page'|'illustration_investment_details'|'illustration_summary'|'spv_recent_contributions'|'spv_pending_investment'|'application_investor_review'|'application_investor_fail'|'di_login_page'|'di_create_password_page'|'home_page'|'di_confirm_account_number'|'di_check_your_email_page'|'illustration_investment_details_page'|'illustrations_summary'|'di_login_page_error'|'illustration_investor_name'|'my_account_security'|'mfa_register_for_mfa'|'mfa_register_error_page'} [properties.location] The page and/or element (e.g. home_nav ; home_main ; clients_nav etc.) where a customer acess takes place\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {'accrued_fees'|'adviser_charges'|'amc'|'cash_statement'|'con'|'current_value'|'dividends_paid_out'|'signup_con'|'signup_email'|'total_assets'|'dividends_reinvested'|'share_value'|'spv_contributions'|'spv_filter_date'|'recent_contributions'|'authentication_code'} [properties.tooltip_type] Type of tooltip\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n tooltipViewed(properties, options, extra) {\n this.track(new TooltipViewed(properties), options, extra);\n }\n\n /**\n * user_verification_intended\n *\n * [View in Tracking Plan](https://data.amplitude.com/oi/Octopus%20Investments/events/main/latest/user_verification_intended)\n *\n * Called when a user enters a CON & presses Register\n *\n * Owner: geri@octopuslabs.com\n *\n * @param {Object} [properties] The event's properties.\n * @param {string} [properties.di_con_entered] Property has no description in tracking plan.\n * @param {string} [properties.di_email_entered] Property has no description in tracking plan.\n * @param {'locked temp'|'permanent lock'|'successful'|'expired'|'input error'|'server error'|'unregistered'} [properties.di_status] Statuses can be locked temp, permanent lock, successful, expired, input error, server error\n * @param {boolean} [properties.is_user_registered] Check whether user attempted to Login is already Registered (Y/N)\n * @param {boolean} [properties.mfa_status] Has the customer got MFA enabled\n * @param {*} [properties.source_website] Property has no description in tracking plan.\n * @param {string} [properties.user_id] the id of the user\n * @param {string} [properties.user_type] Property has no description in tracking plan.\n * @param {boolean} [properties.view_as] Has this event been triggered by someone 'Viewing As' the customer\n * @param {EventOptions} [options] Options for this track call.\n * @param {MiddlewareExtra} [extra] Extra untyped parameters for use in middleware.\n */\n userVerificationIntended(properties, options, extra) {\n this.track(new UserVerificationIntended(properties), options, extra);\n }\n\n /**\n * Add new middleware to end of chain\n *\n * @param {Middleware} middleware\n */\n addEventMiddleware(middleware) {\n this.middlewares.push(middleware);\n }\n\n /**\n * Runs all middleware\n *\n * @param {MiddlewarePayload} payload\n * @param {MiddlewareNext} next The method to run after all middleware.\n *\n * @protected\n */\n runMiddleware(payload, next) {\n let curMiddlewareIndex = -1;\n const middlewareCount = this.middlewares.length;\n\n const middlewareNext = curPayload => {\n curMiddlewareIndex += 1;\n if (curMiddlewareIndex < middlewareCount) {\n this.middlewares[curMiddlewareIndex](curPayload, _next);\n } else {\n next(curPayload);\n }\n };\n\n const _next = middlewareCount > 0 ? middlewareNext : next;\n\n _next(payload);\n }\n}\n\nexport const ampli = new Ampli();\n","// Tracking\nimport { ampli } from \"ampli\";\n\nexport default class Http {\n static retryCount = 0;\n static RETRY_LIMIT = 2;\n\n static get(url) {\n return Http._fetchMethod(url);\n }\n\n static post({ url, data = null, excludeApiPrefix = false }) {\n return Http._fetchMethod({ method: \"POST\", url, data, excludeApiPrefix });\n }\n\n static async _fetchMethod({ data = null, method = \"GET\", url = \"\", excludeApiPrefix = false }) {\n const API_HOST = process.env.REACT_APP_API_URL;\n const relatedUrl = excludeApiPrefix ? `/${url}` : `/api/v1/${url}`;\n const fullUrl = API_HOST ? API_HOST + relatedUrl : relatedUrl;\n\n const fetchBody = data && { body: JSON.stringify(data) };\n\n const response = await fetch(fullUrl, {\n method,\n headers: { \"Content-Type\": \"application/json\" },\n ...fetchBody,\n });\n\n const responseData = await Http._handleAPIResponse(response);\n\n if (response.ok) {\n return { status: response.status, success: true, ...responseData };\n }\n\n switch (response.status) {\n case 400:\n return { status: response.status, success: false, ...responseData };\n\n case 423:\n return {\n isTemporaryLocked: true,\n status: response.status,\n success: false,\n ...responseData,\n };\n\n case 424:\n return { status: response.status, success: false, ...responseData };\n\n default:\n if (this.retryCount >= this.RETRY_LIMIT) {\n this.retryCount = 0;\n\n const { error } = responseData;\n if (error) {\n const { message: errorMessage, source: errorDetails } = error;\n Http._handleItlyError({ errorDetails, errorMessage, errorStatus: response.status });\n }\n\n return { error: true, status: response.status, success: false };\n }\n\n this.retryCount++;\n return Http._fetchMethod({ method, url, data });\n }\n }\n\n static async _handleAPIResponse(response) {\n try {\n return await response.json();\n } catch {\n return {};\n }\n }\n\n static _handleItlyError(info) {\n ampli.errorEncountered({\n error_code: info.errorDetails,\n error_message: info.errorMessage,\n error_status: info.errorStatus,\n });\n }\n}\n","import { createSlice } from \"@reduxjs/toolkit\";\n\nconst initialState = {};\n\nconst apiErrorSlice = createSlice({\n name: \"ERROR_HANDLER\",\n initialState,\n reducers: {\n setError: {\n reducer: (state, action) => {\n return {\n [action.payload]: true,\n ...state,\n };\n },\n },\n clearErrors: () => initialState,\n },\n});\n\nexport const { setError, clearErrors } = apiErrorSlice.actions;\n\nexport default apiErrorSlice.reducer;\n","import { createSlice } from \"@reduxjs/toolkit\";\n\nconst initialState = {\n backButtonTarget: \"loginOrRegister\",\n conNumber: \"\",\n content: \"loginOrRegister\",\n email: \"\",\n password: \"\",\n isTwoFactorEnabled: false,\n isAmpliLoaded: false,\n isEmailNotSent: false,\n isPermanentlyLocked: false,\n isResetPassword: false,\n isTemporaryLocked: false,\n token: \"\",\n redirectUrl: \"\",\n};\n\nconst applicationSlice = createSlice({\n name: \"APPLICATION\",\n initialState,\n reducers: {\n setAmpliLoaded: (state, action) => {\n state.isAmpliLoaded = action.payload;\n },\n setBackButtonTarget: (state, action) => {\n state.backButtonTarget = action.payload;\n },\n setCON: (state, action) => {\n state.conNumber = action.payload;\n },\n setContent: (state, action) => {\n state.content = action.payload;\n },\n setEmailAddress: (state, action) => {\n state.email = action.payload;\n },\n setPasswordForTwoFactor: (state, action) => {\n state.password = action.payload;\n },\n setTwoFactorEnabled: (state, action) => {\n state.isTwoFactorEnabled = action.payload;\n },\n setEmailNotSent: (state, action) => {\n state.isEmailNotSent = action.payload;\n },\n setPermanentlyLocked: (state, action) => {\n state.isPermanentlyLocked = action.payload;\n },\n setResetPassword: (state, action) => {\n state.isResetPassword = action.payload;\n },\n setTemporaryLocked: (state, action) => {\n state.isTemporaryLocked = action.payload;\n },\n setToken: (state, action) => {\n state.token = action.payload;\n },\n setRedirectUrl: (state, action) => {\n state.redirectUrl = action.payload;\n },\n },\n});\n\nexport const {\n setAmpliLoaded,\n setBackButtonTarget,\n setCON,\n setContent,\n setEmailAddress,\n setPasswordForTwoFactor,\n setTwoFactorEnabled,\n setEmailNotSent,\n setPermanentlyLocked,\n setResetPassword,\n setTemporaryLocked,\n setToken,\n setRedirectUrl,\n} = applicationSlice.actions;\n\nexport default applicationSlice.reducer;\n","import { createSlice } from \"@reduxjs/toolkit\";\n\nconst initialState = {\n isConRegisterButtonLoader: false,\n isConReminderButtonLoader: false,\n isCreatePasswordButtonLoader: false,\n isEnableTwoFactorLoader: false,\n isLoader: true,\n isLoginButtonLoader: false,\n isTwoFactorLoginButtonLoader: false,\n isLoginOrRegisterButtonLoader: false,\n isResendButtonLoader: false,\n isTwoFactorRegisterButtonLoader: false,\n};\n\nconst loadersSlice = createSlice({\n name: \"LOADERS\",\n initialState,\n reducers: {\n setCONRegisterButtonLoader: (state, action) => {\n state.isConRegisterButtonLoader = action.payload;\n },\n setCONReminderButtonLoader: (state, action) => {\n state.isConReminderButtonLoader = action.payload;\n },\n setCreatePasswordButtonLoader: (state, action) => {\n state.isCreatePasswordButtonLoader = action.payload;\n },\n setEnableTwoFactorLoader: (state, action) => {\n state.isEnableTwoFactorLoader = action.payload;\n },\n setLoader: (state, action) => {\n state.isLoader = action.payload;\n },\n setLoginButtonLoader: (state, action) => {\n state.isLoginButtonLoader = action.payload;\n },\n setTwoFactorLoginButtonLoader: (state, action) => {\n state.isTwoFactorLoginButtonLoader = action.payload;\n },\n setLoginOrRegisterButtonLoader: (state, action) => {\n state.isLoginOrRegisterButtonLoader = action.payload;\n },\n setResendButtonLoader: (state, action) => {\n state.isResendButtonLoader = action.payload;\n },\n setTwoFactorRegisterButtonLoader: (state, action) => {\n state.isTwoFactorRegisterButtonLoader = action.payload;\n },\n },\n});\n\nexport const {\n setCONRegisterButtonLoader,\n setCONReminderButtonLoader,\n setCreatePasswordButtonLoader,\n setEnableTwoFactorLoader,\n setLoader,\n setLoginButtonLoader,\n setLoginOrRegisterButtonLoader,\n setResendButtonLoader,\n setTwoFactorLoginButtonLoader,\n setTwoFactorRegisterButtonLoader,\n} = loadersSlice.actions;\n\nexport default loadersSlice.reducer;\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\nimport Http from \"api/Http\";\n\n// Actions\nimport { setError } from \"store/slices/apiErrorsSlice\";\nimport { setPermanentlyLocked, setTemporaryLocked } from \"store/slices/applicationSlice\";\nimport {\n setCONRegisterButtonLoader,\n setCONReminderButtonLoader,\n setCreatePasswordButtonLoader,\n setEnableTwoFactorLoader,\n setLoginButtonLoader,\n setLoginOrRegisterButtonLoader,\n setResendButtonLoader,\n setTwoFactorLoginButtonLoader,\n} from \"store/slices/loadersSlice\";\n\n// Helpers\nimport { queryParamsBuilder } from \"utils/helpers\";\n\nexport const callIdentify = createAsyncThunk(\n \"ACCOUNT/callIdentify\",\n async (_props, { dispatch }) => {\n const response = await Http.get({ url: \"account/me\" });\n\n if (response.isTemporaryLocked) {\n dispatch(setTemporaryLocked(true));\n }\n\n if (response.error) {\n dispatch(setError(\"callIdentify\"));\n } else {\n return response;\n }\n },\n);\n\nexport const checkEmail = createAsyncThunk(\n \"ACCOUNT/checkEmail\",\n async (_props, { dispatch, getState }) => {\n const { application } = getState();\n const email = application.email;\n const params = {};\n\n if (email) params.email = email;\n const queryParams = queryParamsBuilder(params);\n\n let response = await Http.get({\n url: `account/status?${queryParams}`,\n });\n\n const { error, isPermanent, isTemporaryLocked } = response;\n\n if (isTemporaryLocked) {\n dispatch(setTemporaryLocked(true));\n }\n\n if (isPermanent) {\n dispatch(setPermanentlyLocked(true));\n }\n\n error ? dispatch(setError(\"checkEmail\")) : dispatch(setLoginOrRegisterButtonLoader(false));\n\n return response;\n },\n {\n condition: (_props, { getState }) => {\n const { application } = getState();\n return application.email !== \"\";\n },\n dispatchConditionRejection: true,\n },\n);\n\nexport const getQRCode = createAsyncThunk(\n \"ACCOUNT/getQRCode\",\n async ({ email }, { dispatch }) => {\n const params = {};\n\n if (email) params.email = email;\n const queryParams = queryParamsBuilder(params);\n\n let response = await Http.get({\n url: `account/two-factor-qr-code?${queryParams}`,\n });\n\n const { error, isPermanent, isTemporaryLocked } = response;\n\n if (isTemporaryLocked) {\n dispatch(setTemporaryLocked(true));\n }\n\n if (isPermanent) {\n dispatch(setPermanentlyLocked(true));\n }\n\n error ? dispatch(setError(\"getQRCode\")) : dispatch(setTwoFactorLoginButtonLoader(false));\n\n return response;\n },\n {\n dispatchConditionRejection: true,\n },\n);\n\nexport const isSignedIn = createAsyncThunk(\"ACCOUNT/isSignedIn\", async (_props, { dispatch }) => {\n const response = await Http.get({ url: \"account/is-signed-in\" });\n\n const { error, isPermanent, isTemporaryLocked } = response;\n\n if (isTemporaryLocked) {\n dispatch(setTemporaryLocked(true));\n }\n\n if (isPermanent) {\n dispatch(setPermanentlyLocked(true));\n }\n\n if (error) {\n dispatch(setError(\"isSignedIn\"));\n }\n\n return response;\n});\n\nexport const remindCON = createAsyncThunk(\"ACCOUNT/remindCON\", async ({ email }, { dispatch }) => {\n let response = await Http.post({\n url: `account/remind-primary-code`,\n data: { email: email },\n });\n\n const { error, isPermanent, isTemporaryLocked } = response;\n\n if (isTemporaryLocked) {\n dispatch(setTemporaryLocked(true));\n }\n\n if (isPermanent) {\n dispatch(setPermanentlyLocked(true));\n }\n\n error ? dispatch(setError(\"remindCON\")) : dispatch(setCONReminderButtonLoader(false));\n\n return response;\n});\n\nexport const sendNewEmail = createAsyncThunk(\n \"ACCOUNT/sendNewEmail\",\n async ({ returnUrl }, { dispatch, getState }) => {\n const { application } = getState();\n const { email, isResetPassword } = application;\n\n const endPointUrl = isResetPassword ? \"send-reset-email\" : \"resend-registration-email\";\n\n let response = await Http.post({\n url: `account/${endPointUrl}`,\n data: { email, returnUrl: returnUrl === false ? null : returnUrl },\n });\n\n const { error, isPermanent, isTemporaryLocked } = response;\n\n if (isTemporaryLocked) {\n dispatch(setTemporaryLocked(true));\n }\n\n if (isPermanent) {\n dispatch(setPermanentlyLocked(true));\n }\n\n if (error) {\n dispatch(setError(\"sendNewEmail\"));\n } else {\n dispatch(setLoginButtonLoader(false));\n dispatch(setResendButtonLoader(false));\n }\n return response;\n },\n {\n condition: (_props, { getState }) => {\n const { application } = getState();\n return application.email !== \"\";\n },\n dispatchConditionRejection: true,\n },\n);\n\nexport const setPassword = createAsyncThunk(\n \"ACCOUNT/setPassword\",\n async (password, { dispatch, getState }) => {\n const { application } = getState();\n const { email, isResetPassword, token } = application;\n const endPointUrl = isResetPassword ? \"reset\" : \"set\";\n\n let response = await Http.post({\n url: `account/${endPointUrl}-password`,\n data: { email, password, token },\n });\n\n const { error, isPermanent, isTemporaryLocked } = response;\n\n if (isTemporaryLocked) {\n dispatch(setTemporaryLocked(true));\n }\n\n if (isPermanent) {\n dispatch(setPermanentlyLocked(true));\n }\n\n error ? dispatch(setError(\"setPassword\")) : dispatch(setCreatePasswordButtonLoader(false));\n\n return response;\n },\n {\n condition: (_props, { getState }) => {\n const { application } = getState();\n return application.token !== \"\";\n },\n dispatchConditionRejection: true,\n },\n);\n\nexport const signIn = createAsyncThunk(\n \"ACCOUNT/signIn\",\n async ({ email, password }, { dispatch }) => {\n let response = await Http.post({\n url: `account/sign-in`,\n data: { email, password },\n });\n\n const { error, isPermanent, isTemporaryLocked } = response;\n\n if (isTemporaryLocked) {\n dispatch(setTemporaryLocked(true));\n }\n\n if (isPermanent) {\n dispatch(setPermanentlyLocked(true));\n }\n\n if (error) {\n dispatch(setError(\"signIn\"));\n }\n\n return response;\n },\n);\n\nexport const signInTwoFactor = createAsyncThunk(\n \"ACCOUNT/signInTwoFactor\",\n async ({ email, password, verificationCode }, { dispatch }) => {\n let response = await Http.post({\n url: `account/sign-in-two-factor`,\n data: { email, password, verificationCode },\n });\n\n const { error, isPermanent, isTemporaryLocked } = response;\n\n if (isTemporaryLocked) {\n dispatch(setTemporaryLocked(true));\n }\n\n if (isPermanent) {\n dispatch(setPermanentlyLocked(true));\n }\n\n if (error) {\n dispatch(setError(\"signIn\"));\n }\n\n return response;\n },\n);\n\nexport const enableTwoFactor = createAsyncThunk(\n \"ACCOUNT/enableTwoFactor\",\n async ({ email, verificationCode }, { dispatch }) => {\n let response = await Http.post({\n url: `account/enable-two-factor`,\n data: {\n email: email,\n verificationCode: verificationCode,\n },\n });\n\n const { error, isPermanent, isTemporaryLocked } = response;\n\n if (isTemporaryLocked) {\n dispatch(setTemporaryLocked(true));\n }\n\n if (isPermanent) {\n dispatch(setPermanentlyLocked(true));\n }\n\n error ? dispatch(setError(\"enableTwoFactor\")) : dispatch(setEnableTwoFactorLoader(false));\n\n return response;\n },\n);\n\nexport const signUp = createAsyncThunk(\n \"ACCOUNT/signUp\",\n async ({ conNumber, returnUrl }, { dispatch, getState }) => {\n const { application } = getState();\n const email = application.email;\n\n let response = await Http.post({\n url: `account/sign-up`,\n data: { email, primaryCode: conNumber, returnUrl },\n });\n\n const { error, isPermanent, isTemporaryLocked } = response;\n\n if (isTemporaryLocked) {\n dispatch(setTemporaryLocked(true));\n }\n\n if (isPermanent) {\n dispatch(setPermanentlyLocked(true));\n }\n\n error ? dispatch(setError(\"signUp\")) : dispatch(setCONRegisterButtonLoader(false));\n\n return response;\n },\n {\n condition: ({ conNumber }, { getState }) => {\n const { application } = getState();\n const isNoEmail = application.email !== \"\";\n const isNoCONNumber = conNumber !== \"\";\n\n return isNoCONNumber && isNoEmail;\n },\n dispatchConditionRejection: true,\n },\n);\n\nexport const validateToken = createAsyncThunk(\n \"ACCOUNT/validateToken\",\n async (_props, { dispatch, getState }) => {\n const { application } = getState();\n const { email, isResetPassword, token } = application;\n const endPointUrl = isResetPassword ? \"reset-password\" : \"registration\";\n const params = {};\n if (email) params.email = email;\n if (token) params.token = token;\n\n const queryParams = queryParamsBuilder(params);\n\n let response = await Http.get({\n url: `account/validate-${endPointUrl}-token?${queryParams}`,\n });\n\n const { error, isPermanent, isTemporaryLocked } = response;\n\n if (isTemporaryLocked) {\n dispatch(setTemporaryLocked(true));\n }\n\n if (isPermanent) {\n dispatch(setPermanentlyLocked(true));\n }\n\n if (error) {\n dispatch(setError(\"validateToken\"));\n }\n\n return response;\n },\n {\n condition: (_props, { getState }) => {\n const { application } = getState();\n const { email, token } = application;\n const isNoEmail = email !== \"\";\n const isNoToken = token !== \"\";\n\n return isNoToken && isNoEmail;\n },\n dispatchConditionRejection: true,\n },\n);\n\nconst accountSlice = createSlice({\n name: \"ACCOUNT\",\n initialState: {},\n});\n\nexport default accountSlice.reducer;\n","import { configureStore } from \"@reduxjs/toolkit\";\n\n// Reducers\nimport AccountReducer from \"./slices/accountSlice\";\nimport ApiErrorReducer from \"./slices/apiErrorsSlice\";\nimport ApplicationReducer from \"./slices/applicationSlice\";\nimport LoaderReducer from \"./slices/loadersSlice\";\n\nconst store = configureStore({\n middleware: getDefaultMiddleware =>\n getDefaultMiddleware({\n serializableCheck: false,\n }),\n reducer: {\n account: AccountReducer,\n apiErrors: ApiErrorReducer,\n application: ApplicationReducer,\n loaders: LoaderReducer,\n },\n});\n\nexport default store;\n","import type {\r\n Reducer,\r\n ReducersMapObject,\r\n Middleware,\r\n Action,\r\n AnyAction,\r\n StoreEnhancer,\r\n Store,\r\n Dispatch,\r\n PreloadedState,\r\n CombinedState,\r\n} from 'redux'\r\nimport { createStore, compose, applyMiddleware, combineReducers } from 'redux'\r\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension'\r\nimport { composeWithDevTools } from './devtoolsExtension'\r\n\r\nimport isPlainObject from './isPlainObject'\r\nimport type {\r\n ThunkMiddlewareFor,\r\n CurriedGetDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nimport { curryGetDefaultMiddleware } from './getDefaultMiddleware'\r\nimport type {\r\n NoInfer,\r\n ExtractDispatchExtensions,\r\n ExtractStoreExtensions,\r\n ExtractStateExtensions,\r\n} from './tsHelpers'\r\nimport { EnhancerArray } from './utils'\r\n\r\nconst IS_PRODUCTION = process.env.NODE_ENV === 'production'\r\n\r\n/**\r\n * Callback function type, to be used in `ConfigureStoreOptions.enhancers`\r\n *\r\n * @public\r\n */\r\nexport type ConfigureEnhancersCallback<E extends Enhancers = Enhancers> = (\r\n defaultEnhancers: EnhancerArray<[StoreEnhancer<{}, {}>]>\r\n) => E\r\n\r\n/**\r\n * Options for `configureStore()`.\r\n *\r\n * @public\r\n */\r\nexport interface ConfigureStoreOptions<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares<S> = Middlewares<S>,\r\n E extends Enhancers = Enhancers\r\n> {\r\n /**\r\n * A single reducer function that will be used as the root reducer, or an\r\n * object of slice reducers that will be passed to `combineReducers()`.\r\n */\r\n reducer: Reducer<S, A> | ReducersMapObject<S, A>\r\n\r\n /**\r\n * An array of Redux middleware to install. If not supplied, defaults to\r\n * the set of middleware returned by `getDefaultMiddleware()`.\r\n *\r\n * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\r\n * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\r\n */\r\n middleware?: ((getDefaultMiddleware: CurriedGetDefaultMiddleware<S>) => M) | M\r\n\r\n /**\r\n * Whether to enable Redux DevTools integration. Defaults to `true`.\r\n *\r\n * Additional configuration can be done by passing Redux DevTools options\r\n */\r\n devTools?: boolean | DevToolsOptions\r\n\r\n /**\r\n * The initial state, same as Redux's createStore.\r\n * You may optionally specify it to hydrate the state\r\n * from the server in universal apps, or to restore a previously serialized\r\n * user session. If you use `combineReducers()` to produce the root reducer\r\n * function (either directly or indirectly by passing an object as `reducer`),\r\n * this must be an object with the same shape as the reducer map keys.\r\n */\r\n /*\r\n Not 100% correct but the best approximation we can get:\r\n - if S is a `CombinedState` applying a second `CombinedState` on it does not change anything.\r\n - if it is not, there could be two cases:\r\n - `ReducersMapObject<S, A>` is being passed in. In this case, we will call `combineReducers` on it and `CombinedState<S>` is correct\r\n - `Reducer<S, A>` is being passed in. In this case, actually `CombinedState<S>` is wrong and `S` would be correct.\r\n As we cannot distinguish between those two cases without adding another generic parameter,\r\n we just make the pragmatic assumption that the latter almost never happens.\r\n */\r\n preloadedState?: PreloadedState<CombinedState<NoInfer<S>>>\r\n\r\n /**\r\n * The store enhancers to apply. See Redux's `createStore()`.\r\n * All enhancers will be included before the DevTools Extension enhancer.\r\n * If you need to customize the order of enhancers, supply a callback\r\n * function that will receive the original array (ie, `[applyMiddleware]`),\r\n * and should return a new array (such as `[applyMiddleware, offline]`).\r\n * If you only need to add middleware, you can use the `middleware` parameter instead.\r\n */\r\n enhancers?: E | ConfigureEnhancersCallback<E>\r\n}\r\n\r\ntype Middlewares<S> = ReadonlyArray<Middleware<{}, S>>\r\n\r\ntype Enhancers = ReadonlyArray<StoreEnhancer>\r\n\r\nexport interface ToolkitStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares<S> = Middlewares<S>\r\n> extends Store<S, A> {\r\n /**\r\n * The `dispatch` method of your store, enhanced by all its middlewares.\r\n *\r\n * @inheritdoc\r\n */\r\n dispatch: ExtractDispatchExtensions<M> & Dispatch<A>\r\n}\r\n\r\n/**\r\n * A Redux store returned by `configureStore()`. Supports dispatching\r\n * side-effectful _thunks_ in addition to plain actions.\r\n *\r\n * @public\r\n */\r\nexport type EnhancedStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares<S> = Middlewares<S>,\r\n E extends Enhancers = Enhancers\r\n> = ToolkitStore<S & ExtractStateExtensions<E>, A, M> &\r\n ExtractStoreExtensions<E>\r\n\r\n/**\r\n * A friendly abstraction over the standard Redux `createStore()` function.\r\n *\r\n * @param options The store configuration.\r\n * @returns A configured Redux store.\r\n *\r\n * @public\r\n */\r\nexport function configureStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares<S> = [ThunkMiddlewareFor<S>],\r\n E extends Enhancers = [StoreEnhancer]\r\n>(options: ConfigureStoreOptions<S, A, M, E>): EnhancedStore<S, A, M, E> {\r\n const curriedGetDefaultMiddleware = curryGetDefaultMiddleware<S>()\r\n\r\n const {\r\n reducer = undefined,\r\n middleware = curriedGetDefaultMiddleware(),\r\n devTools = true,\r\n preloadedState = undefined,\r\n enhancers = undefined,\r\n } = options || {}\r\n\r\n let rootReducer: Reducer<S, A>\r\n\r\n if (typeof reducer === 'function') {\r\n rootReducer = reducer\r\n } else if (isPlainObject(reducer)) {\r\n rootReducer = combineReducers(reducer) as unknown as Reducer<S, A>\r\n } else {\r\n throw new Error(\r\n '\"reducer\" is a required argument, and must be a function or an object of functions that can be passed to combineReducers'\r\n )\r\n }\r\n\r\n let finalMiddleware = middleware\r\n if (typeof finalMiddleware === 'function') {\r\n finalMiddleware = finalMiddleware(curriedGetDefaultMiddleware)\r\n\r\n if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) {\r\n throw new Error(\r\n 'when using a middleware builder function, an array of middleware must be returned'\r\n )\r\n }\r\n }\r\n if (\r\n !IS_PRODUCTION &&\r\n finalMiddleware.some((item: any) => typeof item !== 'function')\r\n ) {\r\n throw new Error(\r\n 'each middleware provided to configureStore must be a function'\r\n )\r\n }\r\n\r\n const middlewareEnhancer: StoreEnhancer = applyMiddleware(...finalMiddleware)\r\n\r\n let finalCompose = compose\r\n\r\n if (devTools) {\r\n finalCompose = composeWithDevTools({\r\n // Enable capture of stack traces for dispatched Redux actions\r\n trace: !IS_PRODUCTION,\r\n ...(typeof devTools === 'object' && devTools),\r\n })\r\n }\r\n\r\n const defaultEnhancers = new EnhancerArray(middlewareEnhancer)\r\n let storeEnhancers: Enhancers = defaultEnhancers\r\n\r\n if (Array.isArray(enhancers)) {\r\n storeEnhancers = [middlewareEnhancer, ...enhancers]\r\n } else if (typeof enhancers === 'function') {\r\n storeEnhancers = enhancers(defaultEnhancers)\r\n }\r\n\r\n const composedEnhancer = finalCompose(...storeEnhancers) as StoreEnhancer<any>\r\n\r\n return createStore(rootReducer, preloadedState, composedEnhancer)\r\n}\r\n","/**\n * Returns `process.env` if it is available in the environment.\n * Always returns an object make it similarly easy to use as `process.env`.\n */\nexport function getProcessEnv(): { [key: string]: string | undefined } {\n if (typeof process === 'undefined' || !process.env) {\n return {}\n }\n\n return process.env\n}\n","import {\n isFunction,\n isPlainObject,\n isString,\n isNumber,\n} from '@segment/analytics-core'\nimport { Context } from '../context'\nimport {\n Callback,\n JSONObject,\n Options,\n EventProperties,\n SegmentEvent,\n Traits,\n GroupTraits,\n UserTraits,\n} from '../events'\nimport { ID, WithId } from '../user'\n\n/**\n * Helper for the track method\n */\nexport function resolveArguments(\n eventName: string | SegmentEvent,\n properties?: EventProperties | Callback,\n options?: Options | Callback,\n callback?: Callback\n): [string, EventProperties | Callback, Options, Callback | undefined] {\n const args = [eventName, properties, options, callback]\n\n const name = isPlainObject(eventName) ? eventName.event : eventName\n if (!name || !isString(name)) {\n throw new Error('Event missing')\n }\n\n const data = isPlainObject(eventName)\n ? eventName.properties ?? {}\n : isPlainObject(properties)\n ? properties\n : {}\n\n let opts: Options = {}\n if (!isFunction(options)) {\n opts = options ?? {}\n }\n\n if (isPlainObject(eventName) && !isFunction(properties)) {\n opts = properties ?? {}\n }\n\n const cb = args.find(isFunction) as Callback | undefined\n return [name, data, opts, cb]\n}\n\n/**\n * Helper for page, screen methods\n */\nexport function resolvePageArguments(\n category?: string | object,\n name?: string | object | Callback,\n properties?: EventProperties | Options | Callback | null,\n options?: Options | Callback,\n callback?: Callback\n): [\n string | null,\n string | null,\n EventProperties,\n Options,\n Callback | undefined\n] {\n let resolvedCategory: string | undefined | null = null\n let resolvedName: string | undefined | null = null\n const args = [category, name, properties, options, callback]\n\n const strings = args.filter(isString)\n if (strings[0] !== undefined && strings[1] !== undefined) {\n resolvedCategory = strings[0]\n resolvedName = strings[1]\n }\n\n if (strings.length === 1) {\n resolvedCategory = null\n resolvedName = strings[0]\n }\n\n const resolvedCallback = args.find(isFunction) as Callback | undefined\n\n const objects = args.filter((obj) => {\n if (resolvedName === null) {\n return isPlainObject(obj)\n }\n return isPlainObject(obj) || obj === null\n }) as Array<JSONObject | null>\n\n const resolvedProperties = (objects[0] ?? {}) as EventProperties\n const resolvedOptions = (objects[1] ?? {}) as Options\n\n return [\n resolvedCategory,\n resolvedName,\n resolvedProperties,\n resolvedOptions,\n resolvedCallback,\n ]\n}\n\n/**\n * Helper for group, identify methods\n */\nexport const resolveUserArguments = <T extends Traits, U extends WithId>(\n user: U\n): ResolveUser<T> => {\n return (...args): ReturnType<ResolveUser<T>> => {\n const values: {\n id?: ID\n traits?: T | null\n options?: Options\n callback?: Callback\n } = {}\n // It's a stack so it's reversed so that we go through each of the expected arguments\n const orderStack: Array<keyof typeof values> = [\n 'callback',\n 'options',\n 'traits',\n 'id',\n ]\n\n // Read each argument and eval the possible values here\n for (const arg of args) {\n let current = orderStack.pop()\n if (current === 'id') {\n if (isString(arg) || isNumber(arg)) {\n values.id = arg.toString()\n continue\n }\n if (arg === null || arg === undefined) {\n continue\n }\n // First argument should always be the id, if it is not a valid value we can skip it\n current = orderStack.pop()\n }\n\n // Traits and Options\n if (\n (current === 'traits' || current === 'options') &&\n (arg === null || arg === undefined || isPlainObject(arg))\n ) {\n values[current] = arg as T\n }\n\n // Callback\n if (isFunction(arg)) {\n values.callback = arg as Callback\n break // This is always the last argument\n }\n }\n\n return [\n values.id ?? user.id(),\n (values.traits ?? {}) as T,\n values.options ?? {},\n values.callback,\n ]\n }\n}\n\n/**\n * Helper for alias method\n */\nexport function resolveAliasArguments(\n to: string | number,\n from?: string | number | Options,\n options?: Options | Callback,\n callback?: Callback\n): [string, string | null, Options, Callback | undefined] {\n if (isNumber(to)) to = to.toString() // Legacy behaviour - allow integers for alias calls\n if (isNumber(from)) from = from.toString()\n const args = [to, from, options, callback]\n\n const [aliasTo = to, aliasFrom = null] = args.filter(isString)\n const [opts = {}] = args.filter(isPlainObject)\n const resolvedCallback = args.find(isFunction) as Callback | undefined\n\n return [aliasTo, aliasFrom, opts, resolvedCallback]\n}\n\ntype ResolveUser<T extends Traits> = (\n id?: ID | object,\n traits?: T | Callback | null,\n options?: Options | Callback,\n callback?: Callback\n) => [ID, T, Options, Callback | undefined]\n\nexport type IdentifyParams = Parameters<ResolveUser<UserTraits>>\nexport type GroupParams = Parameters<ResolveUser<GroupTraits>>\nexport type EventParams = Parameters<typeof resolveArguments>\nexport type PageParams = Parameters<typeof resolvePageArguments>\nexport type AliasParams = Parameters<typeof resolveAliasArguments>\n\nexport type DispatchedEvent = Context\n","import { CoreContext } from '../context'\nimport { Callback } from '../events/interfaces'\nimport { CoreEventQueue } from '../queue/event-queue'\nimport { invokeCallback } from '../callback'\nimport { Emitter } from '@segment/analytics-generic-utils'\n\nexport type DispatchOptions<Ctx extends CoreContext = CoreContext> = {\n timeout?: number\n debug?: boolean\n callback?: Callback<Ctx>\n}\n\n/* The amount of time in ms to wait before invoking the callback. */\nexport const getDelay = (startTimeInEpochMS: number, timeoutInMS?: number) => {\n const elapsedTime = Date.now() - startTimeInEpochMS\n // increasing the timeout increases the delay by almost the same amount -- this is weird legacy behavior.\n return Math.max((timeoutInMS ?? 300) - elapsedTime, 0)\n}\n/**\n * Push an event into the dispatch queue and invoke any callbacks.\n *\n * @param event - Segment event to enqueue.\n * @param queue - Queue to dispatch against.\n * @param emitter - This is typically an instance of \"Analytics\" -- used for metrics / progress information.\n * @param options\n */\nexport async function dispatch<\n Ctx extends CoreContext,\n EQ extends CoreEventQueue<Ctx>\n>(\n ctx: Ctx,\n queue: EQ,\n emitter: Emitter,\n options?: DispatchOptions<Ctx>\n): Promise<Ctx> {\n emitter.emit('dispatch_start', ctx)\n\n const startTime = Date.now()\n let dispatched: Ctx\n if (queue.isEmpty()) {\n dispatched = await queue.dispatchSingle(ctx)\n } else {\n dispatched = await queue.dispatch(ctx)\n }\n\n if (options?.callback) {\n dispatched = await invokeCallback(\n dispatched,\n options.callback,\n getDelay(startTime, options.timeout)\n )\n }\n if (options?.debug) {\n dispatched.flush()\n }\n\n return dispatched\n}\n","import { isPlainObject } from '@segment/analytics-core'\n\n/**\n * Final Page Context object expected in the Segment Event context\n */\nexport interface PageContext {\n path: string\n referrer: string\n search: string\n title: string\n url: string\n}\n\ntype CanonicalUrl = string | undefined\n\nexport const BufferedPageContextDiscriminant = 'bpc' as const\n/**\n * Page Context expected to be built by the snippet.\n * Note: The key names are super short because we want to keep the strings in the html snippet short to save bytes.\n */\nexport interface BufferedPageContext {\n __t: typeof BufferedPageContextDiscriminant // for extra uniqeness\n c: CanonicalUrl\n p: PageContext['path']\n u: PageContext['url']\n s: PageContext['search']\n t: PageContext['title']\n r: PageContext['referrer']\n}\n\n/**\n * `BufferedPageContext` object builder\n */\nexport const createBufferedPageContext = (\n url: string,\n canonicalUrl: CanonicalUrl,\n search: string,\n path: string,\n title: string,\n referrer: string\n): BufferedPageContext => ({\n __t: BufferedPageContextDiscriminant,\n c: canonicalUrl,\n p: path,\n u: url,\n s: search,\n t: title,\n r: referrer,\n})\n\n// my clever/dubious way of making sure this type guard does not get out sync with the type definition\nconst BUFFERED_PAGE_CONTEXT_KEYS = Object.keys(\n createBufferedPageContext('', '', '', '', '', '')\n) as (keyof BufferedPageContext)[]\n\nexport function isBufferedPageContext(\n bufferedPageCtx: unknown\n): bufferedPageCtx is BufferedPageContext {\n if (!isPlainObject(bufferedPageCtx)) return false\n if (bufferedPageCtx.__t !== BufferedPageContextDiscriminant) return false\n\n // ensure obj has all the keys we expect, and none we don't.\n for (const k in bufferedPageCtx) {\n if (!BUFFERED_PAGE_CONTEXT_KEYS.includes(k as keyof BufferedPageContext)) {\n return false\n }\n }\n return true\n}\n\n// Legacy logic: we are we appending search parameters to the canonical URL -- I guess the canonical URL is \"not canonical enough\" (lol)\nconst createCanonicalURL = (canonicalUrl: string, searchParams: string) => {\n return canonicalUrl.indexOf('?') > -1\n ? canonicalUrl\n : canonicalUrl + searchParams\n}\n\n/**\n * Strips hash from URL.\n * http://www.segment.local#test -> http://www.segment.local\n */\nconst removeHash = (href: string) => {\n const hashIdx = href.indexOf('#')\n return hashIdx === -1 ? href : href.slice(0, hashIdx)\n}\n\nconst parseCanonicalPath = (canonicalUrl: string): string => {\n try {\n return new URL(canonicalUrl).pathname\n } catch (_e) {\n // this is classic behavior -- we assume that if the canonical URL is invalid, it's a raw path.\n return canonicalUrl[0] === '/' ? canonicalUrl : '/' + canonicalUrl\n }\n}\n\n/**\n * Create a `PageContext` from a `BufferedPageContext`.\n * `BufferedPageContext` keys are minified to save bytes in the snippet.\n */\nexport const createPageContext = ({\n c: canonicalUrl,\n p: pathname,\n s: search,\n u: url,\n r: referrer,\n t: title,\n}: BufferedPageContext): PageContext => {\n const newPath = canonicalUrl ? parseCanonicalPath(canonicalUrl) : pathname\n const newUrl = canonicalUrl\n ? createCanonicalURL(canonicalUrl, search)\n : removeHash(url)\n return {\n path: newPath,\n referrer,\n search,\n title,\n url: newUrl,\n }\n}\n\n/**\n * Get page properties from the browser window/document.\n */\nexport const getDefaultBufferedPageContext = (): BufferedPageContext => {\n const c = document.querySelector(\"link[rel='canonical']\")\n return createBufferedPageContext(\n location.href,\n (c && c.getAttribute('href')) || undefined,\n location.search,\n location.pathname,\n document.title,\n document.referrer\n )\n}\n\n/**\n * Get page properties from the browser window/document.\n */\nexport const getDefaultPageContext = (): PageContext =>\n createPageContext(getDefaultBufferedPageContext())\n","import { pick } from '../../lib/pick'\nimport { EventProperties, SegmentEvent } from '../events'\nimport { getDefaultPageContext } from './get-page-context'\n\n/**\n * Augments a segment event with information about the current page.\n * Page information like URL changes frequently, so this is meant to be captured as close to the event call as possible.\n * Things like `userAgent` do not change, so they can be added later in the flow.\n * We prefer not to add this information to this function, as it increases the main bundle size.\n */\nexport const addPageContext = (\n event: SegmentEvent,\n pageCtx = getDefaultPageContext()\n): void => {\n const evtCtx = event.context! // Context should be set earlier in the flow\n let pageContextFromEventProps: Pick<EventProperties, string> | undefined\n if (event.type === 'page') {\n pageContextFromEventProps =\n event.properties && pick(event.properties, Object.keys(pageCtx))\n\n event.properties = {\n ...pageCtx,\n ...event.properties,\n ...(event.name ? { name: event.name } : {}),\n }\n }\n\n evtCtx.page = {\n ...pageCtx,\n ...pageContextFromEventProps,\n ...evtCtx.page,\n }\n}\n","export function pick<T extends Record<string, any>, K extends keyof T>(\n object: T,\n keys: readonly K[]\n): Pick<T, K>\n\nexport function pick<T extends Record<string, any>>(\n object: T,\n keys: string[]\n): Partial<T>\n\n/**\n * @example\n * pick({ 'a': 1, 'b': '2', 'c': 3 }, ['a', 'c'])\n * => { 'a': 1, 'c': 3 }\n */\nexport function pick<T extends Record<string, any>, K extends keyof T>(\n object: T,\n keys: string[] | K[] | readonly K[]\n) {\n return Object.assign(\n {},\n ...keys.map((key) => {\n if (object && Object.prototype.hasOwnProperty.call(object, key)) {\n return { [key]: object[key] }\n }\n })\n )\n}\n","export class ValidationError extends Error {\n field: string\n\n constructor(field: string, message: string) {\n super(`${field} ${message}`)\n this.field = field\n }\n}\n","import { CoreSegmentEvent } from '../events'\nimport { ValidationError } from './errors'\nimport { isString, isPlainObject, exists } from './helpers'\n\nconst stringError = 'is not a string'\nconst objError = 'is not an object'\nconst nilError = 'is nil'\n\n// user identity check could hypothetically could be used in the browser event factory, but not 100% sure -- so this is node only for now\nexport function assertUserIdentity(event: CoreSegmentEvent): void {\n const USER_FIELD_NAME = '.userId/anonymousId/previousId/groupId'\n\n const getAnyUserId = (event: CoreSegmentEvent) =>\n event.userId ?? event.anonymousId ?? event.groupId ?? event.previousId\n\n const id = getAnyUserId(event)\n if (!exists(id)) {\n throw new ValidationError(USER_FIELD_NAME, nilError)\n } else if (!isString(id)) {\n throw new ValidationError(USER_FIELD_NAME, stringError)\n }\n}\n\nexport function assertEventExists(\n event?: CoreSegmentEvent | null\n): asserts event is CoreSegmentEvent {\n if (!exists(event)) {\n throw new ValidationError('Event', nilError)\n }\n if (typeof event !== 'object') {\n throw new ValidationError('Event', objError)\n }\n}\n\nexport function assertEventType(event: CoreSegmentEvent): void {\n if (!isString(event.type)) {\n throw new ValidationError('.type', stringError)\n }\n}\n\nexport function assertTrackEventName(event: CoreSegmentEvent): void {\n if (!isString(event.event)) {\n throw new ValidationError('.event', stringError)\n }\n}\n\nexport function assertTrackEventProperties(event: CoreSegmentEvent): void {\n if (!isPlainObject(event.properties)) {\n throw new ValidationError('.properties', objError)\n }\n}\n\nexport function assertTraits(event: CoreSegmentEvent): void {\n if (!isPlainObject(event.traits)) {\n throw new ValidationError('.traits', objError)\n }\n}\n\nexport function assertMessageId(event: CoreSegmentEvent): void {\n if (!isString(event.messageId)) {\n throw new ValidationError('.messageId', stringError)\n }\n}\n\nexport function validateEvent(event?: CoreSegmentEvent | null) {\n assertEventExists(event)\n assertEventType(event)\n assertMessageId(event)\n\n if (event.type === 'track') {\n assertTrackEventName(event)\n assertTrackEventProperties(event)\n }\n\n if (['group', 'identify'].includes(event.type)) {\n assertTraits(event)\n }\n}\n","export * from './interfaces'\nimport { dset } from 'dset'\nimport { ID } from '../user'\nimport {\n Integrations,\n EventProperties,\n CoreSegmentEvent,\n CoreOptions,\n CoreExtraContext,\n UserTraits,\n GroupTraits,\n} from './interfaces'\nimport { pickBy } from '../utils/pick'\nimport type { RemoveIndexSignature } from '../utils/ts-helpers'\nimport { validateEvent } from '../validation/assertions'\n\nexport type EventMethodCallHook = ({\n type,\n options,\n}: {\n type: 'track' | 'identify' | 'page' | 'group' | 'alias' | 'screen'\n options?: CoreOptions\n}) => void\n\nexport type EventHook = (event: CoreSegmentEvent) => void\n\nexport interface EventFactorySettings {\n /**\n * Universal `messageId` builder for all events (these must be unique)\n */\n createMessageId: () => string\n /**\n * Hook to do something with an event right before they are returned from the factory.\n * This includes event modification or additional validation.\n */\n onFinishedEvent?: EventHook\n /**\n * Hook whenever an event method is called (track, page, etc.)\n * Can be used to update Options (or just listen)\n */\n onEventMethodCall?: EventMethodCallHook\n}\n\n/**\n * Internal settings object that is used internally by the factory\n */\nclass InternalEventFactorySettings {\n public createMessageId: EventFactorySettings['createMessageId']\n public onEventMethodCall: EventMethodCallHook\n public onFinishedEvent: EventHook\n\n constructor(public settings: EventFactorySettings) {\n this.createMessageId = settings.createMessageId\n this.onEventMethodCall = settings.onEventMethodCall ?? (() => {})\n this.onFinishedEvent = settings.onFinishedEvent ?? (() => {})\n }\n}\n\nexport abstract class CoreEventFactory {\n private settings: InternalEventFactorySettings\n\n constructor(settings: EventFactorySettings) {\n this.settings = new InternalEventFactorySettings(settings)\n }\n\n track(\n event: string,\n properties?: EventProperties,\n options?: CoreOptions,\n globalIntegrations?: Integrations\n ) {\n this.settings.onEventMethodCall({ type: 'track', options })\n return this.normalize({\n ...this.baseEvent(),\n event,\n type: 'track',\n properties: properties ?? {}, // TODO: why is this not a shallow copy like everywhere else?\n options: { ...options },\n integrations: { ...globalIntegrations },\n })\n }\n\n page(\n category: string | null,\n page: string | null,\n properties?: EventProperties,\n options?: CoreOptions,\n globalIntegrations?: Integrations\n ): CoreSegmentEvent {\n this.settings.onEventMethodCall({ type: 'page', options })\n const event: CoreSegmentEvent = {\n type: 'page',\n properties: { ...properties },\n options: { ...options },\n integrations: { ...globalIntegrations },\n }\n\n if (category !== null) {\n event.category = category\n event.properties = event.properties ?? {}\n event.properties.category = category\n }\n\n if (page !== null) {\n event.name = page\n }\n\n return this.normalize({\n ...this.baseEvent(),\n ...event,\n })\n }\n\n screen(\n category: string | null,\n screen: string | null,\n properties?: EventProperties,\n options?: CoreOptions,\n globalIntegrations?: Integrations\n ): CoreSegmentEvent {\n this.settings.onEventMethodCall({ type: 'screen', options })\n const event: CoreSegmentEvent = {\n type: 'screen',\n properties: { ...properties },\n options: { ...options },\n integrations: { ...globalIntegrations },\n }\n\n if (category !== null) {\n event.category = category\n }\n\n if (screen !== null) {\n event.name = screen\n }\n\n return this.normalize({\n ...this.baseEvent(),\n ...event,\n })\n }\n\n identify(\n userId: ID,\n traits?: UserTraits,\n options?: CoreOptions,\n globalIntegrations?: Integrations\n ): CoreSegmentEvent {\n this.settings.onEventMethodCall({ type: 'identify', options })\n return this.normalize({\n ...this.baseEvent(),\n type: 'identify',\n userId,\n traits: traits ?? {},\n options: { ...options },\n integrations: globalIntegrations,\n })\n }\n\n group(\n groupId: ID,\n traits?: GroupTraits,\n options?: CoreOptions,\n globalIntegrations?: Integrations\n ): CoreSegmentEvent {\n this.settings.onEventMethodCall({ type: 'group', options })\n return this.normalize({\n ...this.baseEvent(),\n type: 'group',\n traits: traits ?? {},\n options: { ...options }, // this spreading is intentional\n integrations: { ...globalIntegrations }, //\n groupId,\n })\n }\n\n alias(\n to: string,\n from: string | null, // TODO: can we make this undefined?\n options?: CoreOptions,\n globalIntegrations?: Integrations\n ): CoreSegmentEvent {\n this.settings.onEventMethodCall({ type: 'alias', options })\n const base: CoreSegmentEvent = {\n userId: to,\n type: 'alias',\n options: { ...options },\n integrations: { ...globalIntegrations },\n }\n\n if (from !== null) {\n base.previousId = from\n }\n\n if (to === undefined) {\n return this.normalize({\n ...base,\n ...this.baseEvent(),\n })\n }\n\n return this.normalize({\n ...this.baseEvent(),\n ...base,\n })\n }\n\n private baseEvent(): Partial<CoreSegmentEvent> {\n return {\n integrations: {},\n options: {},\n }\n }\n\n /**\n * Builds the context part of an event based on \"foreign\" keys that\n * are provided in the `Options` parameter for an Event\n */\n private context(\n options: CoreOptions\n ): [CoreExtraContext, Partial<CoreSegmentEvent>] {\n type CoreOptionKeys = keyof RemoveIndexSignature<CoreOptions>\n /**\n * If the event options are known keys from this list, we move them to the top level of the event.\n * Any other options are moved to context.\n */\n const eventOverrideKeys: CoreOptionKeys[] = [\n 'userId',\n 'anonymousId',\n 'timestamp',\n 'messageId',\n ]\n\n delete options['integrations']\n const providedOptionsKeys = Object.keys(options) as Exclude<\n CoreOptionKeys,\n 'integrations'\n >[]\n\n const context = options.context ?? {}\n const eventOverrides = {}\n\n providedOptionsKeys.forEach((key) => {\n if (key === 'context') {\n return\n }\n\n if (eventOverrideKeys.includes(key)) {\n dset(eventOverrides, key, options[key])\n } else {\n dset(context, key, options[key])\n }\n })\n\n return [context, eventOverrides]\n }\n\n private normalize(event: CoreSegmentEvent): CoreSegmentEvent {\n const integrationBooleans = Object.keys(event.integrations ?? {}).reduce(\n (integrationNames, name) => {\n return {\n ...integrationNames,\n [name]: Boolean(event.integrations?.[name]),\n }\n },\n {} as Record<string, boolean>\n )\n\n // filter out any undefined options\n event.options = pickBy(event.options || {}, (_, value) => {\n return value !== undefined\n })\n\n // This is pretty trippy, but here's what's going on:\n // - a) We don't pass initial integration options as part of the event, only if they're true or false\n // - b) We do accept per integration overrides (like integrations.Amplitude.sessionId) at the event level\n // Hence the need to convert base integration options to booleans, but maintain per event integration overrides\n const allIntegrations = {\n // Base config integrations object as booleans\n ...integrationBooleans,\n\n // Per event overrides, for things like amplitude sessionId, for example\n ...event.options?.integrations,\n }\n\n const [context, overrides] = event.options\n ? this.context(event.options)\n : []\n\n const { options, ...rest } = event\n\n const evt: CoreSegmentEvent = {\n timestamp: new Date(),\n ...rest,\n context,\n integrations: allIntegrations,\n ...overrides,\n messageId: options.messageId || this.settings.createMessageId(),\n }\n\n this.settings.onFinishedEvent(evt)\n validateEvent(evt)\n\n return evt\n }\n}\n","export const pickBy = <T extends object, K extends keyof T>(\n obj: T,\n fn: (key: K, v: T[K]) => boolean\n) => {\n return (Object.keys(obj) as K[])\n .filter((k) => fn(k, obj[k]))\n .reduce((acc, key) => ((acc[key] = obj[key]), acc), {} as Partial<T>)\n}\n","import { v4 as uuid } from '@lukeed/uuid'\nimport { ID, User } from '../user'\nimport {\n Options,\n Integrations,\n EventProperties,\n Traits,\n SegmentEvent,\n} from './interfaces'\nimport { addPageContext, PageContext } from '../page'\nimport { CoreEventFactory } from '@segment/analytics-core'\n\nexport * from './interfaces'\n\nexport class EventFactory extends CoreEventFactory {\n user: User\n constructor(user: User) {\n super({\n createMessageId: () => `ajs-next-${Date.now()}-${uuid()}`,\n onEventMethodCall: ({ options }) => {\n this.maybeUpdateAnonId(options)\n },\n onFinishedEvent: (event) => {\n this.addIdentity(event)\n return event\n },\n })\n this.user = user\n }\n\n /**\n * Updates the anonymousId *globally* if it's provided in the options.\n * This should generally be done in the identify method, but some customers rely on this.\n */\n private maybeUpdateAnonId(options: Options | undefined): void {\n options?.anonymousId && this.user.anonymousId(options.anonymousId)\n }\n\n /**\n * add user id / anonymous id to the event\n */\n private addIdentity(event: SegmentEvent) {\n if (this.user.id()) {\n event.userId = this.user.id()\n }\n\n if (this.user.anonymousId()) {\n event.anonymousId = this.user.anonymousId()\n }\n }\n\n override track(\n event: string,\n properties?: EventProperties,\n options?: Options,\n globalIntegrations?: Integrations,\n pageCtx?: PageContext\n ): SegmentEvent {\n const ev = super.track(event, properties, options, globalIntegrations)\n addPageContext(ev, pageCtx)\n return ev\n }\n\n override page(\n category: string | null,\n page: string | null,\n properties?: EventProperties,\n options?: Options,\n globalIntegrations?: Integrations,\n pageCtx?: PageContext\n ): SegmentEvent {\n const ev = super.page(\n category,\n page,\n properties,\n options,\n globalIntegrations\n )\n addPageContext(ev, pageCtx)\n return ev\n }\n\n override screen(\n category: string | null,\n screen: string | null,\n properties?: EventProperties,\n options?: Options,\n globalIntegrations?: Integrations,\n pageCtx?: PageContext\n ): SegmentEvent {\n const ev = super.screen(\n category,\n screen,\n properties,\n options,\n globalIntegrations\n )\n addPageContext(ev, pageCtx)\n return ev\n }\n\n override identify(\n userId: ID,\n traits?: Traits,\n options?: Options,\n globalIntegrations?: Integrations,\n pageCtx?: PageContext\n ): SegmentEvent {\n const ev = super.identify(userId, traits, options, globalIntegrations)\n addPageContext(ev, pageCtx)\n return ev\n }\n\n override group(\n groupId: ID,\n traits?: Traits,\n options?: Options,\n globalIntegrations?: Integrations,\n pageCtx?: PageContext\n ): SegmentEvent {\n const ev = super.group(groupId, traits, options, globalIntegrations)\n addPageContext(ev, pageCtx)\n return ev\n }\n\n override alias(\n to: string,\n from: string | null,\n options?: Options,\n globalIntegrations?: Integrations,\n pageCtx?: PageContext\n ): SegmentEvent {\n const ev = super.alias(to, from, options, globalIntegrations)\n addPageContext(ev, pageCtx)\n return ev\n }\n}\n","import type { CorePlugin } from '@segment/analytics-core'\nimport type { DestinationMiddlewareFunction } from '../../plugins/middleware'\nimport type { Analytics } from '../analytics'\nimport type { Context } from '../context'\n\nexport interface Plugin extends CorePlugin<Context, Analytics> {}\n\nexport interface InternalPluginWithAddMiddleware extends Plugin {\n addMiddleware: (...fns: DestinationMiddlewareFunction[]) => void\n}\n\nexport interface InternalDestinationPluginWithAddMiddleware\n extends InternalPluginWithAddMiddleware {\n type: 'destination'\n}\n\nexport const isDestinationPluginWithAddMiddleware = (\n plugin: Plugin\n): plugin is InternalDestinationPluginWithAddMiddleware => {\n // FYI: segment's plugin does not currently have an 'addMiddleware' method\n return 'addMiddleware' in plugin && plugin.type === 'destination'\n}\n","import { CoreAnalytics } from '../analytics'\nimport { groupBy } from '../utils/group-by'\nimport { ON_REMOVE_FROM_FUTURE, PriorityQueue } from '../priority-queue'\n\nimport { CoreContext, ContextCancelation } from '../context'\nimport { Emitter } from '@segment/analytics-generic-utils'\nimport { Integrations, JSONObject } from '../events/interfaces'\nimport { CorePlugin } from '../plugins'\nimport { createTaskGroup, TaskGroup } from '../task/task-group'\nimport { attempt, ensure } from './delivery'\n\nexport type EventQueueEmitterContract<Ctx extends CoreContext> = {\n message_delivered: [ctx: Ctx]\n message_enriched: [ctx: Ctx, plugin: CorePlugin<Ctx>]\n delivery_success: [ctx: Ctx]\n delivery_retry: [ctx: Ctx]\n delivery_failure: [ctx: Ctx, err: Ctx | Error | ContextCancelation]\n flush: [ctx: Ctx, delivered: boolean]\n initialization_failure: [CorePlugin<Ctx>]\n}\n\nexport abstract class CoreEventQueue<\n Ctx extends CoreContext = CoreContext,\n Plugin extends CorePlugin<Ctx> = CorePlugin<Ctx>\n> extends Emitter<EventQueueEmitterContract<Ctx>> {\n /**\n * All event deliveries get suspended until all the tasks in this task group are complete.\n * For example: a middleware that augments the event object should be loaded safely as a\n * critical task, this way, event queue will wait for it to be ready before sending events.\n *\n * This applies to all the events already in the queue, and the upcoming ones\n */\n criticalTasks: TaskGroup = createTaskGroup()\n queue: PriorityQueue<Ctx>\n plugins: Plugin[] = []\n failedInitializations: string[] = []\n private flushing = false\n\n constructor(priorityQueue: PriorityQueue<Ctx>) {\n super()\n\n this.queue = priorityQueue\n this.queue.on(ON_REMOVE_FROM_FUTURE, () => {\n this.scheduleFlush(0)\n })\n }\n\n async register(\n ctx: Ctx,\n plugin: Plugin,\n instance: CoreAnalytics\n ): Promise<void> {\n this.plugins.push(plugin)\n\n const handleLoadError = (err: any) => {\n this.failedInitializations.push(plugin.name)\n this.emit('initialization_failure', plugin)\n console.warn(plugin.name, err)\n\n ctx.log('warn', 'Failed to load destination', {\n plugin: plugin.name,\n error: err,\n })\n\n // Filter out the failed plugin by excluding it from the list\n this.plugins = this.plugins.filter((p) => p !== plugin)\n }\n\n if (plugin.type === 'destination' && plugin.name !== 'Segment.io') {\n plugin.load(ctx, instance).catch(handleLoadError)\n } else {\n // for non-destinations plugins, we do need to wait for them to load\n // reminder: action destinations can require plugins that are not of type \"destination\".\n // For example, GA4 loads a type 'before' plugins and addition to a type 'destination' plugin\n try {\n await plugin.load(ctx, instance)\n } catch (err) {\n handleLoadError(err)\n }\n }\n }\n\n async deregister(\n ctx: Ctx,\n plugin: CorePlugin<Ctx>,\n instance: CoreAnalytics\n ): Promise<void> {\n try {\n if (plugin.unload) {\n await Promise.resolve(plugin.unload(ctx, instance))\n }\n\n this.plugins = this.plugins.filter((p) => p.name !== plugin.name)\n } catch (e) {\n ctx.log('warn', 'Failed to unload destination', {\n plugin: plugin.name,\n error: e,\n })\n }\n }\n\n async dispatch(ctx: Ctx): Promise<Ctx> {\n ctx.log('debug', 'Dispatching')\n ctx.stats.increment('message_dispatched')\n\n this.queue.push(ctx)\n const willDeliver = this.subscribeToDelivery(ctx)\n this.scheduleFlush(0)\n return willDeliver\n }\n\n private async subscribeToDelivery(ctx: Ctx): Promise<Ctx> {\n return new Promise((resolve) => {\n const onDeliver = (flushed: Ctx, delivered: boolean): void => {\n if (flushed.isSame(ctx)) {\n this.off('flush', onDeliver)\n if (delivered) {\n resolve(flushed)\n } else {\n resolve(flushed)\n }\n }\n }\n\n this.on('flush', onDeliver)\n })\n }\n\n async dispatchSingle(ctx: Ctx): Promise<Ctx> {\n ctx.log('debug', 'Dispatching')\n ctx.stats.increment('message_dispatched')\n\n this.queue.updateAttempts(ctx)\n ctx.attempts = 1\n\n return this.deliver(ctx).catch((err) => {\n const accepted = this.enqueuRetry(err, ctx)\n if (!accepted) {\n ctx.setFailedDelivery({ reason: err })\n return ctx\n }\n\n return this.subscribeToDelivery(ctx)\n })\n }\n\n isEmpty(): boolean {\n return this.queue.length === 0\n }\n\n private scheduleFlush(timeout = 500): void {\n if (this.flushing) {\n return\n }\n\n this.flushing = true\n\n setTimeout(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.flush().then(() => {\n setTimeout(() => {\n this.flushing = false\n\n if (this.queue.length) {\n this.scheduleFlush(0)\n }\n }, 0)\n })\n }, timeout)\n }\n\n private async deliver(ctx: Ctx): Promise<Ctx> {\n await this.criticalTasks.done()\n\n const start = Date.now()\n try {\n ctx = await this.flushOne(ctx)\n const done = Date.now() - start\n this.emit('delivery_success', ctx)\n ctx.stats.gauge('delivered', done)\n ctx.log('debug', 'Delivered', ctx.event)\n return ctx\n } catch (err: any) {\n const error = err as Ctx | Error | ContextCancelation\n ctx.log('error', 'Failed to deliver', error)\n this.emit('delivery_failure', ctx, error)\n ctx.stats.increment('delivery_failed')\n throw err\n }\n }\n\n private enqueuRetry(err: Error, ctx: Ctx): boolean {\n const retriable = !(err instanceof ContextCancelation) || err.retry\n if (!retriable) {\n return false\n }\n\n return this.queue.pushWithBackoff(ctx)\n }\n\n async flush(): Promise<Ctx[]> {\n if (this.queue.length === 0) {\n return []\n }\n\n let ctx = this.queue.pop()\n if (!ctx) {\n return []\n }\n\n ctx.attempts = this.queue.getAttempts(ctx)\n\n try {\n ctx = await this.deliver(ctx)\n this.emit('flush', ctx, true)\n } catch (err: any) {\n const accepted = this.enqueuRetry(err, ctx)\n\n if (!accepted) {\n ctx.setFailedDelivery({ reason: err })\n this.emit('flush', ctx, false)\n }\n\n return []\n }\n\n return [ctx]\n }\n\n private isReady(): boolean {\n // return this.plugins.every((p) => p.isLoaded())\n // should we wait for every plugin to load?\n return true\n }\n\n private availableExtensions(denyList: Integrations) {\n const available = this.plugins.filter((p) => {\n // Only filter out destination plugins or the Segment.io plugin\n if (p.type !== 'destination' && p.name !== 'Segment.io') {\n return true\n }\n\n let alternativeNameMatch: boolean | JSONObject | undefined = undefined\n p.alternativeNames?.forEach((name) => {\n if (denyList[name] !== undefined) {\n alternativeNameMatch = denyList[name]\n }\n })\n\n // Explicit integration option takes precedence, `All: false` does not apply to Segment.io\n return (\n denyList[p.name] ??\n alternativeNameMatch ??\n (p.name === 'Segment.io' ? true : denyList.All) !== false\n )\n })\n\n const {\n before = [],\n enrichment = [],\n destination = [],\n after = [],\n } = groupBy(available, 'type')\n\n return {\n before,\n enrichment,\n destinations: destination,\n after,\n }\n }\n\n private async flushOne(ctx: Ctx): Promise<Ctx> {\n if (!this.isReady()) {\n throw new Error('Not ready')\n }\n\n if (ctx.attempts > 1) {\n this.emit('delivery_retry', ctx)\n }\n\n const { before, enrichment } = this.availableExtensions(\n ctx.event.integrations ?? {}\n )\n\n for (const beforeWare of before) {\n const temp = await ensure(ctx, beforeWare)\n if (temp instanceof CoreContext) {\n ctx = temp\n }\n\n this.emit('message_enriched', ctx, beforeWare)\n }\n\n for (const enrichmentWare of enrichment) {\n const temp = await attempt(ctx, enrichmentWare)\n if (temp instanceof CoreContext) {\n ctx = temp\n }\n\n this.emit('message_enriched', ctx, enrichmentWare)\n }\n\n // Enrichment and before plugins can re-arrange the deny list dynamically\n // so we need to pluck them at the end\n const { destinations, after } = this.availableExtensions(\n ctx.event.integrations ?? {}\n )\n\n await new Promise((resolve, reject) => {\n setTimeout(() => {\n const attempts = destinations.map((destination) =>\n attempt(ctx, destination)\n )\n Promise.all(attempts).then(resolve).catch(reject)\n }, 0)\n })\n\n ctx.stats.increment('message_delivered')\n\n this.emit('message_delivered', ctx)\n\n const afterCalls = after.map((after) => attempt(ctx, after))\n await Promise.all(afterCalls)\n\n return ctx\n }\n}\n","import { isThenable } from '../utils/is-thenable'\n\nexport type TaskGroup = {\n done: () => Promise<void>\n run: <Operation extends (...args: any[]) => any>(\n op: Operation\n ) => ReturnType<Operation>\n}\n\nexport const createTaskGroup = (): TaskGroup => {\n let taskCompletionPromise: Promise<void>\n let resolvePromise: () => void\n let count = 0\n\n return {\n done: () => taskCompletionPromise,\n run: (op) => {\n const returnValue = op()\n\n if (isThenable(returnValue)) {\n if (++count === 1) {\n taskCompletionPromise = new Promise((res) => (resolvePromise = res))\n }\n\n returnValue.finally(() => --count === 0 && resolvePromise())\n }\n\n return returnValue\n },\n }\n}\n","/**\n * Check if thenable\n * (instanceof Promise doesn't respect realms)\n */\nexport const isThenable = (value: unknown): boolean =>\n typeof value === 'object' &&\n value !== null &&\n 'then' in value &&\n typeof (value as any).then === 'function'\n","type Grouper<T> = (obj: T) => string | number\n\nexport function groupBy<T>(\n collection: T[],\n grouper: keyof T | Grouper<T>\n): Record<string, T[]> {\n const results: Record<string, T[]> = {}\n\n collection.forEach((item) => {\n let key: string | number | undefined = undefined\n\n if (typeof grouper === 'string') {\n const suggestedKey = item[grouper]\n key =\n typeof suggestedKey !== 'string'\n ? JSON.stringify(suggestedKey)\n : suggestedKey\n } else if (grouper instanceof Function) {\n key = grouper(item)\n }\n\n if (key === undefined) {\n return\n }\n\n results[key] = [...(results[key] ?? []), item]\n })\n\n return results\n}\n","import { PriorityQueue } from '../../lib/priority-queue'\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted'\nimport { Context } from '../context'\nimport { Plugin } from '../plugin'\nimport { CoreEventQueue } from '@segment/analytics-core'\nimport { isOffline } from '../connection'\n\nexport class EventQueue extends CoreEventQueue<Context, Plugin> {\n constructor(name: string)\n constructor(priorityQueue: PriorityQueue<Context>)\n constructor(nameOrQueue: string | PriorityQueue<Context>) {\n super(\n typeof nameOrQueue === 'string'\n ? new PersistedPriorityQueue(4, nameOrQueue)\n : nameOrQueue\n )\n }\n async flush(): Promise<Context[]> {\n if (isOffline()) return []\n return super.flush()\n }\n}\n","export default function bindAll<\n ObjType extends { [key: string]: any },\n KeyType extends keyof ObjType\n>(obj: ObjType): ObjType {\n const proto = obj.constructor.prototype\n for (const key of Object.getOwnPropertyNames(proto)) {\n if (key !== 'constructor') {\n const desc = Object.getOwnPropertyDescriptor(\n obj.constructor.prototype,\n key\n )\n if (!!desc && typeof desc.value === 'function') {\n obj[key as KeyType] = obj[key].bind(obj)\n }\n }\n }\n\n return obj\n}\n","import { CookieOptions } from './cookieStorage'\n\nexport const StoreType = {\n Cookie: 'cookie',\n LocalStorage: 'localStorage',\n Memory: 'memory',\n} as const\n\n/**\n * Known Storage Types\n *\n * Convenience settings for storage systems that AJS includes support for\n */\nexport type StoreType = typeof StoreType[keyof typeof StoreType]\n\nexport type StorageObject = Record<string, unknown>\n\n/**\n * Defines a Storage object for use in AJS Client.\n */\nexport interface Store<Data extends StorageObject = StorageObject> {\n /**\n * get value for the key from the stores. it will return the first value found in the stores\n * @param key key for the value to be retrieved\n * @returns value for the key or null if not found\n */\n get<K extends keyof Data>(key: K): Data[K] | null\n\n /**\n * it will set the value for the key in all the stores\n * @param key key for the value to be stored\n * @param value value to be stored\n * @returns value that was stored\n */\n set<K extends keyof Data>(key: K, value: Data[K] | null): void\n /**\n * remove the value for the key from all the stores\n * @param key key for the value to be removed\n * @param storeTypes optional array of store types to be used for removing the value\n */\n remove<K extends keyof Data>(key: K): void\n}\n\nexport interface StoreTypeWithSettings<T extends StoreType = StoreType> {\n name: T\n settings?: T extends 'cookie' ? CookieOptions : never\n}\n\nexport type InitializeStorageArgs = (StoreTypeWithSettings | StoreType)[]\n","import { Store, StorageObject } from './types'\n\n// not adding to private method because those method names do not get minified atm, and does not use 'this'\nconst _logStoreKeyError = (\n store: Store,\n action: 'set' | 'get' | 'remove',\n key: string,\n err: unknown\n) => {\n console.warn(\n `${store.constructor.name}: Can't ${action} key \"${key}\" | Err: ${err}`\n )\n}\n\n/**\n * Uses multiple storages in a priority list to get/set values in the order they are specified.\n */\nexport class UniversalStorage<Data extends StorageObject = StorageObject> {\n private stores: Store[]\n\n constructor(stores: Store[]) {\n this.stores = stores\n }\n\n get<K extends keyof Data>(key: K): Data[K] | null {\n let val: Data[K] | null = null\n\n for (const store of this.stores) {\n try {\n val = store.get(key) as Data[K] | null\n if (val !== undefined && val !== null) {\n return val\n }\n } catch (e) {\n _logStoreKeyError(store, 'get', key, e)\n }\n }\n return null\n }\n\n set<K extends keyof Data>(key: K, value: Data[K] | null): void {\n this.stores.forEach((store) => {\n try {\n store.set(key, value)\n } catch (e) {\n _logStoreKeyError(store, 'set', key, e)\n }\n })\n }\n\n clear<K extends keyof Data>(key: K): void {\n this.stores.forEach((store) => {\n try {\n store.remove(key)\n } catch (e) {\n _logStoreKeyError(store, 'remove', key, e)\n }\n })\n }\n\n /*\n This is to support few scenarios where:\n - value exist in one of the stores ( as a result of other stores being cleared from browser ) and we want to resync them\n - read values in AJS 1.0 format ( for customers after 1.0 --> 2.0 migration ) and then re-write them in AJS 2.0 format\n */\n getAndSync<K extends keyof Data>(key: K): Data[K] | null {\n const val = this.get(key)\n\n // legacy behavior, getAndSync can change the type of a value from number to string (AJS 1.0 stores numerical values as a number)\n const coercedValue = (typeof val === 'number' ? val.toString() : val) as\n | Data[K]\n | null\n\n this.set(key, coercedValue)\n\n return coercedValue\n }\n}\n","import { Store, StorageObject } from './types'\n\n/**\n * Data Storage using in memory object\n */\nexport class MemoryStorage<Data extends StorageObject = StorageObject>\n implements Store<Data>\n{\n private cache: Record<string, unknown> = {}\n\n get<K extends keyof Data>(key: K): Data[K] | null {\n return (this.cache[key] ?? null) as Data[K] | null\n }\n\n set<K extends keyof Data>(key: K, value: Data[K] | null): void {\n this.cache[key] = value\n }\n\n remove<K extends keyof Data>(key: K): void {\n delete this.cache[key]\n }\n}\n","import { StoreType, StoreTypeWithSettings } from './types'\n\nexport type UniversalStorageSettings = { stores: StoreType[] }\n\n// This is setup this way to permit eventually a different set of settings for custom storage\nexport type StorageSettings = UniversalStorageSettings\n\nexport function isArrayOfStoreType(\n s: StorageSettings\n): s is UniversalStorageSettings {\n return (\n s &&\n s.stores &&\n Array.isArray(s.stores) &&\n s.stores.every((e) => Object.values(StoreType).includes(e))\n )\n}\n\nexport function isStoreTypeWithSettings(\n s: StoreTypeWithSettings | StoreType\n): s is StoreTypeWithSettings {\n return typeof s === 'object' && s.name !== undefined\n}\n","/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n","import cookie from 'js-cookie'\n\n/**\n * Levels returns all levels of the given url.\n *\n * @param {string} url\n * @return {Array}\n * @api public\n */\nfunction levels(url: URL): string[] {\n const host = url.hostname\n const parts = host.split('.')\n const last = parts[parts.length - 1]\n const levels: string[] = []\n\n // Ip address.\n if (parts.length === 4 && parseInt(last, 10) > 0) {\n return levels\n }\n\n // Localhost.\n if (parts.length <= 1) {\n return levels\n }\n\n // Create levels.\n for (let i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'))\n }\n\n return levels\n}\n\nfunction parseUrl(url: string): URL | undefined {\n try {\n return new URL(url)\n } catch {\n return\n }\n}\n\nexport function tld(url: string): string | undefined {\n const parsedUrl = parseUrl(url)\n if (!parsedUrl) return\n\n const lvls = levels(parsedUrl)\n\n // Lookup the real top level one.\n for (let i = 0; i < lvls.length; ++i) {\n const cname = '__tld__'\n const domain = lvls[i]\n const opts = { domain: '.' + domain }\n\n try {\n // cookie access throw an error if the library is ran inside a sandboxed environment (e.g. sandboxed iframe)\n cookie.set(cname, '1', opts)\n if (cookie.get(cname)) {\n cookie.remove(cname, opts)\n return domain\n }\n } catch (_) {\n return\n }\n }\n}\n","import { Store, StorageObject } from './types'\nimport jar from 'js-cookie'\nimport { tld } from '../user/tld'\n\nconst ONE_YEAR = 365\n\nexport interface CookieOptions {\n maxage?: number\n domain?: string\n path?: string\n secure?: boolean\n sameSite?: string\n}\n\n/**\n * Data storage using browser cookies\n */\nexport class CookieStorage<Data extends StorageObject = StorageObject>\n implements Store<Data>\n{\n static get defaults(): CookieOptions {\n return {\n maxage: ONE_YEAR,\n domain: tld(window.location.href),\n path: '/',\n sameSite: 'Lax',\n }\n }\n\n private options: Required<CookieOptions>\n\n constructor(options: CookieOptions = CookieStorage.defaults) {\n this.options = {\n ...CookieStorage.defaults,\n ...options,\n } as Required<CookieOptions>\n }\n\n private opts(): jar.CookieAttributes {\n return {\n sameSite: this.options.sameSite as jar.CookieAttributes['sameSite'],\n expires: this.options.maxage,\n domain: this.options.domain,\n path: this.options.path,\n secure: this.options.secure,\n }\n }\n\n get<K extends keyof Data>(key: K): Data[K] | null {\n try {\n const value = jar.get(key)\n\n if (value === undefined || value === null) {\n return null\n }\n\n try {\n return JSON.parse(value) ?? null\n } catch (e) {\n return (value ?? null) as unknown as Data[K] | null\n }\n } catch (e) {\n return null\n }\n }\n\n set<K extends keyof Data>(key: K, value: Data[K] | null): void {\n if (typeof value === 'string') {\n jar.set(key, value, this.opts())\n } else if (value === null) {\n jar.remove(key, this.opts())\n } else {\n jar.set(key, JSON.stringify(value), this.opts())\n }\n }\n\n remove<K extends keyof Data>(key: K): void {\n return jar.remove(key, this.opts())\n }\n}\n","import { StorageObject, Store } from './types'\n\n/**\n * Data storage using browser's localStorage\n */\nexport class LocalStorage<Data extends StorageObject = StorageObject>\n implements Store<Data>\n{\n private localStorageWarning(key: keyof Data, state: 'full' | 'unavailable') {\n console.warn(`Unable to access ${key}, localStorage may be ${state}`)\n }\n\n get<K extends keyof Data>(key: K): Data[K] | null {\n try {\n const val = localStorage.getItem(key)\n if (val === null) {\n return null\n }\n try {\n return JSON.parse(val) ?? null\n } catch (e) {\n return (val ?? null) as unknown as Data[K] | null\n }\n } catch (err) {\n this.localStorageWarning(key, 'unavailable')\n return null\n }\n }\n\n set<K extends keyof Data>(key: K, value: Data[K] | null): void {\n try {\n localStorage.setItem(key, JSON.stringify(value))\n } catch {\n this.localStorageWarning(key, 'full')\n }\n }\n\n remove<K extends keyof Data>(key: K): void {\n try {\n return localStorage.removeItem(key)\n } catch (err) {\n this.localStorageWarning(key, 'unavailable')\n }\n }\n}\n","import { CookieOptions, CookieStorage } from './cookieStorage'\nimport { LocalStorage } from './localStorage'\nimport { MemoryStorage } from './memoryStorage'\nimport { isStoreTypeWithSettings } from './settings'\nimport { StoreType, Store, InitializeStorageArgs } from './types'\n\nexport * from './types'\nexport * from './localStorage'\nexport * from './cookieStorage'\nexport * from './memoryStorage'\nexport * from './universalStorage'\nexport * from './settings'\n\n/**\n * Creates multiple storage systems from an array of StoreType and options\n * @param args StoreType and options\n * @returns Storage array\n */\nexport function initializeStorages(args: InitializeStorageArgs): Store[] {\n const storages = args.map((s) => {\n let type: StoreType\n let settings\n\n if (isStoreTypeWithSettings(s)) {\n type = s.name\n settings = s.settings\n } else {\n type = s\n }\n\n switch (type) {\n case StoreType.Cookie:\n return new CookieStorage(settings)\n case StoreType.LocalStorage:\n return new LocalStorage()\n case StoreType.Memory:\n return new MemoryStorage()\n default:\n throw new Error(`Unknown Store Type: ${s}`)\n }\n })\n return storages\n}\n\n/**\n * Injects the CookieOptions into a the arguments for initializeStorage\n * @param storeTypes list of storeType\n * @param cookieOptions cookie Options\n * @returns arguments for initializeStorage\n */\nexport function applyCookieOptions(\n storeTypes: StoreType[],\n cookieOptions?: CookieOptions\n): InitializeStorageArgs {\n return storeTypes.map((s) => {\n if (cookieOptions && s === StoreType.Cookie) {\n return {\n name: s,\n settings: cookieOptions,\n }\n }\n return s\n })\n}\n","import { v4 as uuid } from '@lukeed/uuid'\nimport autoBind from '../../lib/bind-all'\nimport { Traits } from '../events'\nimport {\n CookieOptions,\n UniversalStorage,\n MemoryStorage,\n StorageObject,\n StorageSettings,\n StoreType,\n applyCookieOptions,\n initializeStorages,\n isArrayOfStoreType,\n} from '../storage'\n\nexport type ID = string | null | undefined\n\nexport interface UserOptions {\n /**\n * Disables storing any data about the user.\n */\n disable?: boolean\n localStorageFallbackDisabled?: boolean\n persist?: boolean\n\n cookie?: {\n key?: string\n oldKey?: string\n }\n\n localStorage?: {\n key: string\n }\n\n /**\n * Store priority\n * @example stores: [StoreType.Cookie, StoreType.Memory]\n */\n storage?: StorageSettings\n}\n\nconst defaults = {\n persist: true,\n cookie: {\n key: 'ajs_user_id',\n oldKey: 'ajs_user',\n },\n localStorage: {\n key: 'ajs_user_traits',\n },\n}\n\nexport interface WithId {\n id(id?: ID): ID\n}\n\nexport class User implements WithId {\n static defaults = defaults\n\n private idKey: string\n private traitsKey: string\n private anonKey: string\n private cookieOptions?: CookieOptions\n\n private legacyUserStore: UniversalStorage<{\n [k: string]:\n | {\n id?: string\n traits?: Traits\n }\n | string\n }>\n private traitsStore: UniversalStorage<{\n [k: string]: Traits\n }>\n\n private identityStore: UniversalStorage<{\n [k: string]: string\n }>\n\n options: UserOptions = {}\n\n constructor(options: UserOptions = defaults, cookieOptions?: CookieOptions) {\n this.options = { ...defaults, ...options }\n this.cookieOptions = cookieOptions\n\n this.idKey = options.cookie?.key ?? defaults.cookie.key\n this.traitsKey = options.localStorage?.key ?? defaults.localStorage.key\n this.anonKey = 'ajs_anonymous_id'\n\n this.identityStore = this.createStorage(this.options, cookieOptions)\n\n // using only cookies for legacy user store\n this.legacyUserStore = this.createStorage(\n this.options,\n cookieOptions,\n (s) => s === StoreType.Cookie\n )\n\n // using only localStorage / memory for traits store\n this.traitsStore = this.createStorage(\n this.options,\n cookieOptions,\n (s) => s !== StoreType.Cookie\n )\n\n const legacyUser = this.legacyUserStore.get(defaults.cookie.oldKey)\n if (legacyUser && typeof legacyUser === 'object') {\n legacyUser.id && this.id(legacyUser.id)\n legacyUser.traits && this.traits(legacyUser.traits)\n }\n autoBind(this)\n }\n\n id = (id?: ID): ID => {\n if (this.options.disable) {\n return null\n }\n\n const prevId = this.identityStore.getAndSync(this.idKey)\n\n if (id !== undefined) {\n this.identityStore.set(this.idKey, id)\n\n const changingIdentity = id !== prevId && prevId !== null && id !== null\n if (changingIdentity) {\n this.anonymousId(null)\n }\n }\n\n const retId = this.identityStore.getAndSync(this.idKey)\n if (retId) return retId\n\n const retLeg = this.legacyUserStore.get(defaults.cookie.oldKey)\n return retLeg ? (typeof retLeg === 'object' ? retLeg.id : retLeg) : null\n }\n\n private legacySIO(): [string, string] | null {\n const val = this.legacyUserStore.get('_sio') as string\n if (!val) {\n return null\n }\n const [anon, user] = val.split('----')\n return [anon, user]\n }\n\n anonymousId = (id?: ID): ID => {\n if (this.options.disable) {\n return null\n }\n\n if (id === undefined) {\n const val =\n this.identityStore.getAndSync(this.anonKey) ?? this.legacySIO()?.[0]\n\n if (val) {\n return val\n }\n }\n\n if (id === null) {\n this.identityStore.set(this.anonKey, null)\n return this.identityStore.getAndSync(this.anonKey)\n }\n\n this.identityStore.set(this.anonKey, id ?? uuid())\n return this.identityStore.getAndSync(this.anonKey)\n }\n\n traits = (traits?: Traits | null): Traits | undefined => {\n if (this.options.disable) {\n return\n }\n\n if (traits === null) {\n traits = {}\n }\n\n if (traits) {\n this.traitsStore.set(this.traitsKey, traits ?? {})\n }\n\n return this.traitsStore.get(this.traitsKey) ?? {}\n }\n\n identify(id?: ID, traits?: Traits): void {\n if (this.options.disable) {\n return\n }\n\n traits = traits ?? {}\n const currentId = this.id()\n\n if (currentId === null || currentId === id) {\n traits = {\n ...this.traits(),\n ...traits,\n }\n }\n\n if (id) {\n this.id(id)\n }\n\n this.traits(traits)\n }\n\n logout(): void {\n this.anonymousId(null)\n this.id(null)\n this.traits({})\n }\n\n reset(): void {\n this.logout()\n this.identityStore.clear(this.idKey)\n this.identityStore.clear(this.anonKey)\n this.traitsStore.clear(this.traitsKey)\n }\n\n load(): User {\n return new User(this.options, this.cookieOptions)\n }\n\n save(): boolean {\n return true\n }\n\n /**\n * Creates the right storage system applying all the user options, cookie options and particular filters\n * @param options UserOptions\n * @param cookieOpts CookieOptions\n * @param filterStores filter function to apply to any StoreTypes (skipped if options specify using a custom storage)\n * @returns a Storage object\n */\n private createStorage<T extends StorageObject = StorageObject>(\n options: UserOptions,\n cookieOpts?: CookieOptions,\n filterStores?: (value: StoreType) => boolean\n ): UniversalStorage<T> {\n let stores: StoreType[] = [\n StoreType.LocalStorage,\n StoreType.Cookie,\n StoreType.Memory,\n ]\n\n // If disabled we won't have any storage functionality\n if (options.disable) {\n return new UniversalStorage<T>([])\n }\n\n // If persistance is disabled we will always fallback to Memory Storage\n if (!options.persist) {\n return new UniversalStorage<T>([new MemoryStorage<T>()])\n }\n\n if (options.storage !== undefined && options.storage !== null) {\n if (isArrayOfStoreType(options.storage)) {\n // If the user only specified order of stores we will still apply filters and transformations e.g. not using localStorage if localStorageFallbackDisabled\n stores = options.storage.stores\n }\n }\n\n // Disable LocalStorage\n if (options.localStorageFallbackDisabled) {\n stores = stores.filter((s) => s !== StoreType.LocalStorage)\n }\n\n // Apply Additional filters\n if (filterStores) {\n stores = stores.filter(filterStores)\n }\n\n return new UniversalStorage(\n initializeStorages(applyCookieOptions(stores, cookieOpts))\n )\n }\n}\n\nconst groupDefaults: UserOptions = {\n persist: true,\n cookie: {\n key: 'ajs_group_id',\n },\n localStorage: {\n key: 'ajs_group_properties',\n },\n}\n\nexport class Group extends User {\n constructor(options: UserOptions = groupDefaults, cookie?: CookieOptions) {\n super({ ...groupDefaults, ...options }, cookie)\n autoBind(this)\n }\n\n anonymousId = (_id?: ID): ID => {\n return undefined\n }\n}\n","import { Analytics } from '../analytics'\nimport { Context } from '../context'\nimport { isThenable } from '../../lib/is-thenable'\nimport { AnalyticsBrowserCore } from '../analytics/interfaces'\nimport { version } from '../../generated/version'\nimport { getGlobalAnalytics } from '../../lib/global-analytics-helper'\nimport {\n isBufferedPageContext,\n BufferedPageContext,\n getDefaultBufferedPageContext,\n createPageContext,\n PageContext,\n} from '../page'\n\n/**\n * The names of any AnalyticsBrowser methods that also exist on Analytics\n */\nexport type PreInitMethodName =\n | 'screen'\n | 'register'\n | 'deregister'\n | 'user'\n | 'trackSubmit'\n | 'trackClick'\n | 'trackLink'\n | 'trackForm'\n | 'pageview'\n | 'identify'\n | 'reset'\n | 'group'\n | 'track'\n | 'ready'\n | 'alias'\n | 'debug'\n | 'page'\n | 'once'\n | 'off'\n | 'on'\n | 'addSourceMiddleware'\n | 'setAnonymousId'\n | 'addDestinationMiddleware'\n\n// Union of all analytics methods that _do not_ return a Promise\ntype SyncPreInitMethodName = {\n [MethodName in PreInitMethodName]: ReturnType<\n Analytics[MethodName]\n > extends Promise<any>\n ? never\n : MethodName\n}[PreInitMethodName]\n\nconst flushSyncAnalyticsCalls = (\n name: SyncPreInitMethodName,\n analytics: Analytics,\n buffer: PreInitMethodCallBuffer\n): void => {\n buffer.getCalls(name).forEach((c) => {\n // While the underlying methods are synchronous, the callAnalyticsMethod returns a promise,\n // which normalizes success and error states between async and non-async methods, with no perf penalty.\n callAnalyticsMethod(analytics, c).catch(console.error)\n })\n}\n\nexport const flushAddSourceMiddleware = async (\n analytics: Analytics,\n buffer: PreInitMethodCallBuffer\n) => {\n for (const c of buffer.getCalls('addSourceMiddleware')) {\n await callAnalyticsMethod(analytics, c).catch(console.error)\n }\n}\n\nexport const flushOn = flushSyncAnalyticsCalls.bind(this, 'on')\n\nexport const flushSetAnonymousID = flushSyncAnalyticsCalls.bind(\n this,\n 'setAnonymousId'\n)\n\nexport const flushAnalyticsCallsInNewTask = (\n analytics: Analytics,\n buffer: PreInitMethodCallBuffer\n): void => {\n buffer.toArray().forEach((m) => {\n setTimeout(() => {\n callAnalyticsMethod(analytics, m).catch(console.error)\n }, 0)\n })\n}\n\nexport const popPageContext = (args: unknown[]): PageContext | undefined => {\n if (hasBufferedPageContextAsLastArg(args)) {\n const ctx = args.pop() as BufferedPageContext\n return createPageContext(ctx)\n }\n}\n\nexport const hasBufferedPageContextAsLastArg = (\n args: unknown[]\n): args is [...unknown[], BufferedPageContext] | [BufferedPageContext] => {\n const lastArg = args[args.length - 1]\n return isBufferedPageContext(lastArg)\n}\n\n/**\n * Represents a buffered method call that occurred before initialization.\n */\nexport class PreInitMethodCall<\n MethodName extends PreInitMethodName = PreInitMethodName\n> {\n method: MethodName\n args: PreInitMethodParams<MethodName>\n called: boolean\n resolve: (v: ReturnType<Analytics[MethodName]>) => void\n reject: (reason: any) => void\n constructor(\n method: PreInitMethodCall<MethodName>['method'],\n args: PreInitMethodParams<MethodName>,\n resolve: PreInitMethodCall<MethodName>['resolve'] = () => {},\n reject: PreInitMethodCall<MethodName>['reject'] = console.error\n ) {\n this.method = method\n this.resolve = resolve\n this.reject = reject\n this.called = false\n this.args = args\n }\n}\n\nexport type PreInitMethodParams<MethodName extends PreInitMethodName> =\n | [...Parameters<Analytics[MethodName]>, BufferedPageContext]\n | Parameters<Analytics[MethodName]>\n\n/**\n * Infer return type; if return type is promise, unwrap it.\n */\ntype ReturnTypeUnwrap<Fn> = Fn extends (...args: any[]) => infer ReturnT\n ? ReturnT extends PromiseLike<infer Unwrapped>\n ? Unwrapped\n : ReturnT\n : never\n\ntype MethodCallMap = Partial<Record<PreInitMethodName, PreInitMethodCall[]>>\n\ntype SnippetWindowBufferedMethodCall<\n MethodName extends PreInitMethodName = PreInitMethodName\n> = [MethodName, ...PreInitMethodParams<MethodName>]\n\n/**\n * A list of the method calls before initialization for snippet users\n * For example, [[\"track\", \"foo\", {bar: 123}], [\"page\"], [\"on\", \"ready\", function(){..}]\n */\ntype SnippetBuffer = SnippetWindowBufferedMethodCall[]\n\n/**\n * Represents any and all the buffered method calls that occurred before initialization.\n */\nexport class PreInitMethodCallBuffer {\n private _callMap: MethodCallMap = {}\n\n constructor(...calls: PreInitMethodCall[]) {\n this.push(...calls)\n }\n\n /**\n * Pull any buffered method calls from the window object, and use them to hydrate the instance buffer.\n */\n private get calls() {\n this._pushSnippetWindowBuffer()\n return this._callMap\n }\n\n private set calls(calls: MethodCallMap) {\n this._callMap = calls\n }\n\n getCalls<T extends PreInitMethodName>(methodName: T): PreInitMethodCall<T>[] {\n return (this.calls[methodName] ?? []) as PreInitMethodCall<T>[]\n }\n\n push(...calls: PreInitMethodCall[]): void {\n calls.forEach((call) => {\n const eventsExpectingPageContext: PreInitMethodName[] = [\n 'track',\n 'screen',\n 'alias',\n 'group',\n 'page',\n 'identify',\n ]\n if (\n eventsExpectingPageContext.includes(call.method) &&\n !hasBufferedPageContextAsLastArg(call.args)\n ) {\n call.args = [...call.args, getDefaultBufferedPageContext()]\n }\n\n if (this.calls[call.method]) {\n this.calls[call.method]!.push(call)\n } else {\n this.calls[call.method] = [call]\n }\n })\n }\n\n clear(): void {\n // clear calls in the global snippet buffered array.\n this._pushSnippetWindowBuffer()\n // clear calls in this instance\n this.calls = {}\n }\n\n toArray(): PreInitMethodCall[] {\n return ([] as PreInitMethodCall[]).concat(...Object.values(this.calls))\n }\n\n /**\n * Fetch the buffered method calls from the window object,\n * normalize them, and use them to hydrate the buffer.\n * This removes existing buffered calls from the window object.\n */\n private _pushSnippetWindowBuffer(): void {\n const wa = getGlobalAnalytics()\n if (!Array.isArray(wa)) return undefined\n const buffered: SnippetBuffer = wa.splice(0, wa.length)\n const calls = buffered.map(\n ([methodName, ...args]) => new PreInitMethodCall(methodName, args)\n )\n this.push(...calls)\n }\n}\n\n/**\n * Call method and mark as \"called\"\n * This function should never throw an error\n */\nexport async function callAnalyticsMethod<T extends PreInitMethodName>(\n analytics: Analytics,\n call: PreInitMethodCall<T>\n): Promise<void> {\n try {\n if (call.called) {\n return undefined\n }\n call.called = true\n\n const result: ReturnType<Analytics[T]> = (\n analytics[call.method] as Function\n )(...call.args)\n\n if (isThenable(result)) {\n // do not defer for non-async methods\n await result\n }\n\n call.resolve(result)\n } catch (err) {\n call.reject(err)\n }\n}\n\nexport type AnalyticsLoader = (\n preInitBuffer: PreInitMethodCallBuffer\n) => Promise<[Analytics, Context]>\n\nexport class AnalyticsBuffered\n implements PromiseLike<[Analytics, Context]>, AnalyticsBrowserCore\n{\n instance?: Analytics\n ctx?: Context\n private _preInitBuffer: PreInitMethodCallBuffer\n private _promise: Promise<[Analytics, Context]>\n constructor(loader: AnalyticsLoader) {\n this._preInitBuffer = new PreInitMethodCallBuffer()\n this._promise = loader(this._preInitBuffer)\n this._promise\n .then(([ajs, ctx]) => {\n this.instance = ajs\n this.ctx = ctx\n })\n .catch(() => {\n // intentionally do nothing...\n // this result of this promise will be caught by the 'catch' block on this class.\n })\n }\n\n then<T1, T2 = never>(\n ...args: [\n onfulfilled:\n | ((instance: [Analytics, Context]) => T1 | PromiseLike<T1>)\n | null\n | undefined,\n onrejected?: (reason: unknown) => T2 | PromiseLike<T2>\n ]\n ) {\n return this._promise.then(...args)\n }\n\n catch<TResult = never>(\n ...args: [\n onrejected?:\n | ((reason: any) => TResult | PromiseLike<TResult>)\n | undefined\n | null\n ]\n ) {\n return this._promise.catch(...args)\n }\n\n finally(...args: [onfinally?: (() => void) | undefined | null]) {\n return this._promise.finally(...args)\n }\n\n trackSubmit = this._createMethod('trackSubmit')\n trackClick = this._createMethod('trackClick')\n trackLink = this._createMethod('trackLink')\n pageView = this._createMethod('pageview')\n identify = this._createMethod('identify')\n reset = this._createMethod('reset')\n group = this._createMethod('group') as AnalyticsBrowserCore['group']\n track = this._createMethod('track')\n ready = this._createMethod('ready')\n alias = this._createMethod('alias')\n debug = this._createChainableMethod('debug')\n page = this._createMethod('page')\n once = this._createChainableMethod('once')\n off = this._createChainableMethod('off')\n on = this._createChainableMethod('on')\n addSourceMiddleware = this._createMethod('addSourceMiddleware')\n setAnonymousId = this._createMethod('setAnonymousId')\n addDestinationMiddleware = this._createMethod('addDestinationMiddleware')\n\n screen = this._createMethod('screen')\n register = this._createMethod('register')\n deregister = this._createMethod('deregister')\n user = this._createMethod('user')\n readonly VERSION = version\n\n private _createMethod<T extends PreInitMethodName>(methodName: T) {\n return (\n ...args: Parameters<Analytics[T]>\n ): Promise<ReturnTypeUnwrap<Analytics[T]>> => {\n if (this.instance) {\n const result = (this.instance[methodName] as Function)(...args)\n return Promise.resolve(result)\n }\n return new Promise((resolve, reject) => {\n this._preInitBuffer.push(\n new PreInitMethodCall(methodName, args, resolve as any, reject)\n )\n })\n }\n }\n\n /**\n * These are for methods that where determining when the method gets \"flushed\" is not important.\n * These methods will resolve when analytics is fully initialized, and return type (other than Analytics)will not be available.\n */\n private _createChainableMethod<T extends PreInitMethodName>(methodName: T) {\n return (...args: Parameters<Analytics[T]>): AnalyticsBuffered => {\n if (this.instance) {\n void (this.instance[methodName] as Function)(...args)\n return this\n } else {\n this._preInitBuffer.push(new PreInitMethodCall(methodName, args))\n }\n\n return this\n }\n }\n}\n","/**\n * Check if thenable\n * (instanceof Promise doesn't respect realms)\n */\nexport const isThenable = (value: unknown): boolean =>\n typeof value === 'object' &&\n value !== null &&\n 'then' in value &&\n typeof (value as any).then === 'function'\n","import {\n AliasParams,\n DispatchedEvent,\n EventParams,\n GroupParams,\n PageParams,\n resolveAliasArguments,\n resolveArguments,\n resolvePageArguments,\n resolveUserArguments,\n IdentifyParams,\n} from '../arguments-resolver'\nimport type { FormArgs, LinkArgs } from '../auto-track'\nimport { isOffline } from '../connection'\nimport { Context } from '../context'\nimport { dispatch } from '@segment/analytics-core'\nimport { Emitter } from '@segment/analytics-generic-utils'\nimport {\n Callback,\n EventFactory,\n Integrations,\n Plan,\n EventProperties,\n SegmentEvent,\n} from '../events'\nimport { isDestinationPluginWithAddMiddleware, Plugin } from '../plugin'\nimport { EventQueue } from '../queue/event-queue'\nimport { Group, ID, User, UserOptions } from '../user'\nimport autoBind from '../../lib/bind-all'\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted'\nimport type { LegacyIntegration } from '../../plugins/ajs-destination/types'\nimport type {\n DestinationMiddlewareFunction,\n MiddlewareFunction,\n} from '../../plugins/middleware'\nimport { version } from '../../generated/version'\nimport { PriorityQueue } from '../../lib/priority-queue'\nimport { getGlobal } from '../../lib/get-global'\nimport { AnalyticsClassic, AnalyticsCore } from './interfaces'\nimport { HighEntropyHint } from '../../lib/client-hints/interfaces'\nimport type { CDNSettings } from '../../browser'\nimport {\n CookieOptions,\n MemoryStorage,\n UniversalStorage,\n StorageSettings,\n StoreType,\n applyCookieOptions,\n initializeStorages,\n isArrayOfStoreType,\n} from '../storage'\nimport { setGlobalAnalytics } from '../../lib/global-analytics-helper'\nimport { popPageContext } from '../buffer'\n\nconst deprecationWarning =\n 'This is being deprecated and will be not be available in future releases of Analytics JS'\n\n// reference any pre-existing \"analytics\" object so a user can restore the reference\nconst global: any = getGlobal()\nconst _analytics = global?.analytics\n\nfunction createDefaultQueue(\n name: string,\n retryQueue = false,\n disablePersistance = false\n) {\n const maxAttempts = retryQueue ? 10 : 1\n const priorityQueue = disablePersistance\n ? new PriorityQueue(maxAttempts, [])\n : new PersistedPriorityQueue(maxAttempts, name)\n return new EventQueue(priorityQueue)\n}\n\n/**\n * The public settings that are set on the analytics instance\n */\nexport class AnalyticsInstanceSettings {\n readonly writeKey: string\n /**\n * This is an unstable API, it may change in the future without warning.\n */\n readonly cdnSettings: CDNSettings\n\n /**\n * Auto-track specific timeout setting for legacy purposes.\n */\n timeout = 300\n\n constructor(settings: AnalyticsSettings) {\n this.writeKey = settings.writeKey\n this.cdnSettings = settings.cdnSettings ?? {\n integrations: {},\n edgeFunction: {},\n }\n }\n}\n\n/**\n * The settings that are used to configure the analytics instance\n */\nexport interface AnalyticsSettings {\n writeKey: string\n cdnSettings?: CDNSettings\n}\n\nexport interface InitOptions {\n /**\n * Disables storing any data on the client-side via cookies or localstorage.\n * Defaults to `false`.\n *\n */\n disableClientPersistence?: boolean\n /**\n * Disables automatically converting ISO string event properties into Dates.\n * ISO string to Date conversions occur right before sending events to a classic device mode integration,\n * after any destination middleware have been ran.\n * Defaults to `false`.\n */\n disableAutoISOConversion?: boolean\n initialPageview?: boolean\n cookie?: CookieOptions\n storage?: StorageSettings\n user?: UserOptions\n group?: UserOptions\n integrations?: Integrations\n plan?: Plan\n retryQueue?: boolean\n obfuscate?: boolean\n /**\n * This callback allows you to update/mutate CDN Settings.\n * This is called directly after settings are fetched from the CDN.\n */\n updateCDNSettings?: (settings: CDNSettings) => CDNSettings\n /**\n * Disables or sets constraints on processing of query string parameters\n */\n useQueryString?:\n | boolean\n | {\n aid?: RegExp\n uid?: RegExp\n }\n /**\n * Array of high entropy Client Hints to request. These may be rejected by the user agent - only required hints should be requested.\n */\n highEntropyValuesClientHints?: HighEntropyHint[]\n /**\n * When using the snippet, this is the key that points to the global analytics instance (e.g. window.analytics).\n * default: analytics\n */\n globalAnalyticsKey?: string\n\n /**\n * Disable sending any data to Segment's servers. All emitted events and API calls (including .ready()), will be no-ops, and no cookies or localstorage will be used.\n *\n * @example\n * ### Basic (Will not not fetch any CDN settings)\n * ```ts\n * disable: process.env.NODE_ENV === 'test'\n * ```\n *\n * ### Advanced (Fetches CDN Settings. Do not use this unless you require CDN settings for some reason)\n * ```ts\n * disable: (cdnSettings) => cdnSettings.foo === 'bar'\n * ```\n */\n disable?: boolean | ((cdnSettings: CDNSettings) => boolean | Promise<boolean>)\n}\n\n/* analytics-classic stubs */\nfunction _stub(this: never) {\n console.warn(deprecationWarning)\n}\n\nexport class Analytics\n extends Emitter\n implements AnalyticsCore, AnalyticsClassic\n{\n settings: AnalyticsInstanceSettings\n private _user: User\n private _group: Group\n private eventFactory: EventFactory\n private _debug = false\n private _universalStorage: UniversalStorage\n\n initialized = false\n integrations: Integrations\n options: InitOptions\n queue: EventQueue\n\n constructor(\n settings: AnalyticsSettings,\n options?: InitOptions,\n queue?: EventQueue,\n user?: User,\n group?: Group\n ) {\n super()\n const cookieOptions = options?.cookie\n const disablePersistance = options?.disableClientPersistence ?? false\n this.settings = new AnalyticsInstanceSettings(settings)\n this.queue =\n queue ??\n createDefaultQueue(\n `${settings.writeKey}:event-queue`,\n options?.retryQueue,\n disablePersistance\n )\n\n const storageSetting = options?.storage\n this._universalStorage = this.createStore(\n disablePersistance,\n storageSetting,\n cookieOptions\n )\n\n this._user =\n user ??\n new User(\n {\n persist: !disablePersistance,\n storage: options?.storage,\n // Any User specific options override everything else\n ...options?.user,\n },\n cookieOptions\n ).load()\n this._group =\n group ??\n new Group(\n {\n persist: !disablePersistance,\n storage: options?.storage,\n // Any group specific options override everything else\n ...options?.group,\n },\n cookieOptions\n ).load()\n this.eventFactory = new EventFactory(this._user)\n this.integrations = options?.integrations ?? {}\n this.options = options ?? {}\n autoBind(this)\n }\n\n user = (): User => {\n return this._user\n }\n\n /**\n * Creates the storage system based on the settings received\n * @returns Storage\n */\n private createStore(\n disablePersistance: boolean,\n storageSetting: InitOptions['storage'],\n cookieOptions?: CookieOptions | undefined\n ): UniversalStorage {\n // DisablePersistance option overrides all, no storage will be used outside of memory even if specified\n if (disablePersistance) {\n return new UniversalStorage([new MemoryStorage()])\n } else {\n if (storageSetting) {\n if (isArrayOfStoreType(storageSetting)) {\n // We will create the store with the priority for customer settings\n return new UniversalStorage(\n initializeStorages(\n applyCookieOptions(storageSetting.stores, cookieOptions)\n )\n )\n }\n }\n }\n // We default to our multi storage with priority\n return new UniversalStorage(\n initializeStorages([\n StoreType.LocalStorage,\n {\n name: StoreType.Cookie,\n settings: cookieOptions,\n },\n StoreType.Memory,\n ])\n )\n }\n\n get storage(): UniversalStorage {\n return this._universalStorage\n }\n\n async track(...args: EventParams): Promise<DispatchedEvent> {\n const pageCtx = popPageContext(args)\n const [name, data, opts, cb] = resolveArguments(...args)\n\n const segmentEvent = this.eventFactory.track(\n name,\n data as EventProperties,\n opts,\n this.integrations,\n pageCtx\n )\n\n return this._dispatch(segmentEvent, cb).then((ctx) => {\n this.emit('track', name, ctx.event.properties, ctx.event.options)\n return ctx\n })\n }\n\n async page(...args: PageParams): Promise<DispatchedEvent> {\n const pageCtx = popPageContext(args)\n const [category, page, properties, options, callback] =\n resolvePageArguments(...args)\n\n const segmentEvent = this.eventFactory.page(\n category,\n page,\n properties,\n options,\n this.integrations,\n pageCtx\n )\n\n return this._dispatch(segmentEvent, callback).then((ctx) => {\n this.emit('page', category, page, ctx.event.properties, ctx.event.options)\n return ctx\n })\n }\n\n async identify(...args: IdentifyParams): Promise<DispatchedEvent> {\n const pageCtx = popPageContext(args)\n const [id, _traits, options, callback] = resolveUserArguments(this._user)(\n ...args\n )\n\n this._user.identify(id, _traits)\n const segmentEvent = this.eventFactory.identify(\n this._user.id(),\n this._user.traits(),\n options,\n this.integrations,\n pageCtx\n )\n\n return this._dispatch(segmentEvent, callback).then((ctx) => {\n this.emit(\n 'identify',\n ctx.event.userId,\n ctx.event.traits,\n ctx.event.options\n )\n return ctx\n })\n }\n\n group(): Group\n group(...args: GroupParams): Promise<DispatchedEvent>\n group(...args: GroupParams): Promise<DispatchedEvent> | Group {\n const pageCtx = popPageContext(args)\n if (args.length === 0) {\n return this._group\n }\n\n const [id, _traits, options, callback] = resolveUserArguments(this._group)(\n ...args\n )\n\n this._group.identify(id, _traits)\n const groupId = this._group.id()\n const groupTraits = this._group.traits()\n\n const segmentEvent = this.eventFactory.group(\n groupId,\n groupTraits,\n options,\n this.integrations,\n pageCtx\n )\n\n return this._dispatch(segmentEvent, callback).then((ctx) => {\n this.emit('group', ctx.event.groupId, ctx.event.traits, ctx.event.options)\n return ctx\n })\n }\n\n async alias(...args: AliasParams): Promise<DispatchedEvent> {\n const pageCtx = popPageContext(args)\n const [to, from, options, callback] = resolveAliasArguments(...args)\n const segmentEvent = this.eventFactory.alias(\n to,\n from,\n options,\n this.integrations,\n pageCtx\n )\n return this._dispatch(segmentEvent, callback).then((ctx) => {\n this.emit('alias', to, from, ctx.event.options)\n return ctx\n })\n }\n\n async screen(...args: PageParams): Promise<DispatchedEvent> {\n const pageCtx = popPageContext(args)\n const [category, page, properties, options, callback] =\n resolvePageArguments(...args)\n\n const segmentEvent = this.eventFactory.screen(\n category,\n page,\n properties,\n options,\n this.integrations,\n pageCtx\n )\n return this._dispatch(segmentEvent, callback).then((ctx) => {\n this.emit(\n 'screen',\n category,\n page,\n ctx.event.properties,\n ctx.event.options\n )\n return ctx\n })\n }\n\n async trackClick(...args: LinkArgs): Promise<Analytics> {\n const autotrack = await import(\n /* webpackChunkName: \"auto-track\" */ '../auto-track'\n )\n return autotrack.link.call(this, ...args)\n }\n\n async trackLink(...args: LinkArgs): Promise<Analytics> {\n const autotrack = await import(\n /* webpackChunkName: \"auto-track\" */ '../auto-track'\n )\n return autotrack.link.call(this, ...args)\n }\n\n async trackSubmit(...args: FormArgs): Promise<Analytics> {\n const autotrack = await import(\n /* webpackChunkName: \"auto-track\" */ '../auto-track'\n )\n return autotrack.form.call(this, ...args)\n }\n\n async trackForm(...args: FormArgs): Promise<Analytics> {\n const autotrack = await import(\n /* webpackChunkName: \"auto-track\" */ '../auto-track'\n )\n return autotrack.form.call(this, ...args)\n }\n\n async register(...plugins: Plugin[]): Promise<Context> {\n const ctx = Context.system()\n\n const registrations = plugins.map((xt) =>\n this.queue.register(ctx, xt, this)\n )\n await Promise.all(registrations)\n\n return ctx\n }\n\n async deregister(...plugins: string[]): Promise<Context> {\n const ctx = Context.system()\n\n const deregistrations = plugins.map((pl) => {\n const plugin = this.queue.plugins.find((p) => p.name === pl)\n if (plugin) {\n return this.queue.deregister(ctx, plugin, this)\n } else {\n ctx.log('warn', `plugin ${pl} not found`)\n }\n })\n\n await Promise.all(deregistrations)\n\n return ctx\n }\n\n debug(toggle: boolean): Analytics {\n // Make sure legacy ajs debug gets turned off if it was enabled before upgrading.\n if (toggle === false && localStorage.getItem('debug')) {\n localStorage.removeItem('debug')\n }\n this._debug = toggle\n return this\n }\n\n reset(): void {\n this._user.reset()\n this._group.reset()\n this.emit('reset')\n }\n\n timeout(timeout: number): void {\n this.settings.timeout = timeout\n }\n\n private async _dispatch(\n event: SegmentEvent,\n callback?: Callback\n ): Promise<DispatchedEvent> {\n const ctx = new Context(event)\n if (isOffline() && !this.options.retryQueue) {\n return ctx\n }\n return dispatch(ctx, this.queue, this, {\n callback,\n debug: this._debug,\n timeout: this.settings.timeout,\n })\n }\n\n async addSourceMiddleware(fn: MiddlewareFunction): Promise<Analytics> {\n await this.queue.criticalTasks.run(async () => {\n const { sourceMiddlewarePlugin } = await import(\n /* webpackChunkName: \"middleware\" */ '../../plugins/middleware'\n )\n\n const integrations: Record<string, boolean> = {}\n this.queue.plugins.forEach((plugin) => {\n if (plugin.type === 'destination') {\n return (integrations[plugin.name] = true)\n }\n })\n\n const plugin = sourceMiddlewarePlugin(fn, integrations)\n await this.register(plugin)\n })\n\n return this\n }\n\n /* TODO: This does not have to return a promise? */\n addDestinationMiddleware(\n integrationName: string,\n ...middlewares: DestinationMiddlewareFunction[]\n ): Promise<Analytics> {\n this.queue.plugins\n .filter(isDestinationPluginWithAddMiddleware)\n .forEach((p) => {\n if (\n integrationName === '*' ||\n p.name.toLowerCase() === integrationName.toLowerCase()\n ) {\n p.addMiddleware(...middlewares)\n }\n })\n\n return Promise.resolve(this)\n }\n\n setAnonymousId(id?: string): ID {\n return this._user.anonymousId(id)\n }\n\n async queryString(query: string): Promise<Context[]> {\n if (this.options.useQueryString === false) {\n return []\n }\n\n const { queryString } = await import(\n /* webpackChunkName: \"queryString\" */ '../query-string'\n )\n return queryString(this, query)\n }\n\n /**\n * @deprecated This function does not register a destination plugin.\n *\n * Instantiates a legacy Analytics.js destination.\n *\n * This function does not register the destination as an Analytics.JS plugin,\n * all the it does it to invoke the factory function back.\n */\n use(legacyPluginFactory: (analytics: Analytics) => void): Analytics {\n legacyPluginFactory(this)\n return this\n }\n\n async ready(\n callback: Function = (res: Promise<unknown>[]): Promise<unknown>[] => res\n ): Promise<unknown> {\n return Promise.all(\n this.queue.plugins.map((i) => (i.ready ? i.ready() : Promise.resolve()))\n ).then((res) => {\n callback(res)\n return res\n })\n }\n\n // analytics-classic api\n\n noConflict(): Analytics {\n console.warn(deprecationWarning)\n setGlobalAnalytics(_analytics ?? this)\n return this\n }\n\n normalize(msg: SegmentEvent): SegmentEvent {\n console.warn(deprecationWarning)\n return this.eventFactory['normalize'](msg)\n }\n\n get failedInitializations(): string[] {\n console.warn(deprecationWarning)\n return this.queue.failedInitializations\n }\n\n get VERSION(): string {\n return version\n }\n\n /* @deprecated - noop */\n async initialize(\n _settings?: AnalyticsSettings,\n _options?: InitOptions\n ): Promise<Analytics> {\n console.warn(deprecationWarning)\n return Promise.resolve(this)\n }\n\n init = this.initialize.bind(this)\n\n async pageview(url: string): Promise<Analytics> {\n console.warn(deprecationWarning)\n await this.page({ path: url })\n return this\n }\n\n get plugins() {\n console.warn(deprecationWarning)\n // @ts-expect-error\n return this._plugins ?? {}\n }\n\n get Integrations() {\n console.warn(deprecationWarning)\n const integrations = this.queue.plugins\n .filter((plugin) => plugin.type === 'destination')\n .reduce((acc, plugin) => {\n const name = `${plugin.name\n .toLowerCase()\n .replace('.', '')\n .split(' ')\n .join('-')}Integration`\n\n // @ts-expect-error\n const integration = window[name] as\n | (LegacyIntegration & { Integration?: LegacyIntegration })\n | undefined\n\n if (!integration) {\n return acc\n }\n\n const nested = integration.Integration // hack - Google Analytics function resides in the \"Integration\" field\n if (nested) {\n acc[plugin.name] = nested\n return acc\n }\n\n acc[plugin.name] = integration as LegacyIntegration\n return acc\n }, {} as Record<string, LegacyIntegration>)\n\n return integrations\n }\n\n log = _stub\n addIntegrationMiddleware = _stub\n listeners = _stub\n addEventListener = _stub\n removeAllListeners = _stub\n removeListener = _stub\n removeEventListener = _stub\n hasListeners = _stub\n add = _stub\n addIntegration = _stub\n\n // snippet function\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n push(args: any[]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const an = this as any\n const method = args.shift()\n if (method) {\n if (!an[method]) return\n }\n an[method].apply(this, args)\n }\n}\n\n/**\n * @returns a no-op analytics instance that does not create cookies or localstorage, or send any events to segment.\n */\nexport class NullAnalytics extends Analytics {\n constructor() {\n super({ writeKey: '' }, { disableClientPersistence: true })\n this.initialized = true\n }\n}\n","import jar from 'js-cookie'\nimport type { Context } from '../../core/context'\nimport type { Plugin } from '../../core/plugin'\nimport { version } from '../../generated/version'\nimport { SegmentEvent } from '../../core/events'\nimport { Campaign, PluginType } from '@segment/analytics-core'\nimport { getVersionType } from '../../lib/version-type'\nimport { tld } from '../../core/user/tld'\nimport { gracefulDecodeURIComponent } from '../../core/query-string/gracefulDecodeURIComponent'\nimport { CookieStorage, UniversalStorage } from '../../core/storage'\nimport { Analytics } from '../../core/analytics'\nimport { clientHints } from '../../lib/client-hints'\nimport { UADataValues } from '../../lib/client-hints/interfaces'\n\nlet cookieOptions: jar.CookieAttributes | undefined\nfunction getCookieOptions(): jar.CookieAttributes {\n if (cookieOptions) {\n return cookieOptions\n }\n\n const domain = tld(window.location.href)\n cookieOptions = {\n expires: 31536000000, // 1 year\n secure: false,\n path: '/',\n }\n if (domain) {\n cookieOptions.domain = domain\n }\n\n return cookieOptions\n}\n\ntype Ad = { id: string; type: string }\n\nfunction ads(query: string): Ad | undefined {\n const queryIds: Record<string, string> = {\n btid: 'dataxu',\n urid: 'millennial-media',\n }\n\n if (query.startsWith('?')) {\n query = query.substring(1)\n }\n query = query.replace(/\\?/g, '&')\n const parts = query.split('&')\n\n for (const part of parts) {\n const [k, v] = part.split('=')\n if (queryIds[k]) {\n return {\n id: v,\n type: queryIds[k],\n }\n }\n }\n}\n\nexport function utm(query: string): Campaign {\n if (query.startsWith('?')) {\n query = query.substring(1)\n }\n query = query.replace(/\\?/g, '&')\n\n return query.split('&').reduce((acc, str) => {\n const [k, v = ''] = str.split('=')\n if (k.includes('utm_') && k.length > 4) {\n let utmParam = k.slice(4) as keyof Campaign\n if (utmParam === 'campaign') {\n utmParam = 'name'\n }\n acc[utmParam] = gracefulDecodeURIComponent(v)\n }\n return acc\n }, {} as Campaign)\n}\n\nexport function ampId(): string | undefined {\n const ampId = jar.get('_ga')\n if (ampId && ampId.startsWith('amp')) {\n return ampId\n }\n}\n\nfunction referrerId(\n query: string,\n ctx: SegmentEvent['context'],\n disablePersistance: boolean\n): void {\n const storage = new UniversalStorage<{\n 's:context.referrer': Ad\n }>(disablePersistance ? [] : [new CookieStorage(getCookieOptions())])\n\n const stored = storage.get('s:context.referrer')\n\n const ad = ads(query) ?? stored\n\n if (!ad) {\n return\n }\n\n if (ctx) {\n ctx.referrer = { ...ctx.referrer, ...ad }\n }\n\n storage.set('s:context.referrer', ad)\n}\n\n/**\n *\n * @param obj e.g. { foo: 'b', bar: 'd', baz: ['123', '456']}\n * @returns e.g. 'foo=b&bar=d&baz=123&baz=456'\n */\nconst objectToQueryString = (\n obj: Record<string, string | string[]>\n): string => {\n try {\n const searchParams = new URLSearchParams()\n Object.entries(obj).forEach(([k, v]) => {\n if (Array.isArray(v)) {\n v.forEach((value) => searchParams.append(k, value))\n } else {\n searchParams.append(k, v)\n }\n })\n return searchParams.toString()\n } catch {\n return ''\n }\n}\n\nclass EnvironmentEnrichmentPlugin implements Plugin {\n private instance!: Analytics\n private userAgentData: UADataValues | undefined\n\n name = 'Page Enrichment'\n type: PluginType = 'before'\n version = '0.1.0'\n isLoaded = () => true\n load = async (_ctx: Context, instance: Analytics) => {\n this.instance = instance\n try {\n this.userAgentData = await clientHints(\n this.instance.options.highEntropyValuesClientHints\n )\n } catch (_) {\n // if client hints API doesn't return anything leave undefined\n }\n return Promise.resolve()\n }\n\n private enrich = (ctx: Context): Context => {\n // Note: Types are off - context should never be undefined here, since it is set as part of event creation.\n const evtCtx = ctx.event.context!\n\n const search = evtCtx.page!.search || ''\n\n const query =\n typeof search === 'object' ? objectToQueryString(search) : search\n\n evtCtx.userAgent = navigator.userAgent\n evtCtx.userAgentData = this.userAgentData\n\n // @ts-ignore\n const locale = navigator.userLanguage || navigator.language\n\n if (typeof evtCtx.locale === 'undefined' && typeof locale !== 'undefined') {\n evtCtx.locale = locale\n }\n\n evtCtx.library ??= {\n name: 'analytics.js',\n version: `${getVersionType() === 'web' ? 'next' : 'npm:next'}-${version}`,\n }\n\n if (query && !evtCtx.campaign) {\n evtCtx.campaign = utm(query)\n }\n\n const amp = ampId()\n if (amp) {\n evtCtx.amp = { id: amp }\n }\n\n referrerId(\n query,\n evtCtx,\n this.instance.options.disableClientPersistence ?? false\n )\n\n try {\n evtCtx.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n } catch (_) {\n // If browser doesn't have support leave timezone undefined\n }\n\n return ctx\n }\n\n track = this.enrich\n identify = this.enrich\n page = this.enrich\n group = this.enrich\n alias = this.enrich\n screen = this.enrich\n}\n\nexport const envEnrichment = new EnvironmentEnrichmentPlugin()\n","import { HighEntropyHint, NavigatorUAData, UADataValues } from './interfaces'\n\nexport async function clientHints(\n hints?: HighEntropyHint[]\n): Promise<UADataValues | undefined> {\n const userAgentData = (navigator as any).userAgentData as\n | NavigatorUAData\n | undefined\n\n if (!userAgentData) return undefined\n\n if (!hints) return userAgentData.toJSON()\n return userAgentData\n .getHighEntropyValues(hints)\n .catch(() => userAgentData.toJSON())\n}\n","import type { Integrations } from '../../core/events/interfaces'\nimport { CDNSettings } from '../../browser'\nimport { JSONObject, JSONValue } from '../../core/events'\nimport { Plugin, InternalPluginWithAddMiddleware } from '../../core/plugin'\nimport { loadScript } from '../../lib/load-script'\nimport { getCDN } from '../../lib/parse-cdn'\nimport {\n applyDestinationMiddleware,\n DestinationMiddlewareFunction,\n} from '../middleware'\nimport { Context, ContextCancelation } from '../../core/context'\nimport { recordIntegrationMetric } from '../../core/stats/metric-helpers'\nimport { Analytics, InitOptions } from '../../core/analytics'\nimport { createDeferred } from '@segment/analytics-generic-utils'\n\nexport interface RemotePlugin {\n /** The name of the remote plugin */\n name: string\n /** The creation name of the remote plugin */\n creationName: string\n /** The url of the javascript file to load */\n url: string\n /** The UMD/global name the plugin uses. Plugins are expected to exist here with the `PluginFactory` method signature */\n libraryName: string\n /** The settings related to this plugin. */\n settings: JSONObject\n}\n\nexport class ActionDestination implements InternalPluginWithAddMiddleware {\n name: string // destination name\n version = '1.0.0'\n /**\n * The lifecycle name of the wrapped plugin.\n * This does not need to be 'destination', and can be 'enrichment', etc.\n */\n type: Plugin['type']\n\n alternativeNames: string[] = []\n\n private loadPromise = createDeferred<unknown>()\n\n middleware: DestinationMiddlewareFunction[] = []\n\n action: Plugin\n\n constructor(name: string, action: Plugin) {\n this.action = action\n this.name = name\n this.type = action.type\n this.alternativeNames.push(action.name)\n }\n\n addMiddleware(...fn: DestinationMiddlewareFunction[]): void {\n /** Make sure we only apply destination filters to actions of the \"destination\" type to avoid causing issues for hybrid destinations */\n if (this.type === 'destination') {\n this.middleware.push(...fn)\n }\n }\n\n private async transform(ctx: Context): Promise<Context> {\n const modifiedEvent = await applyDestinationMiddleware(\n this.name,\n ctx.event,\n this.middleware\n )\n\n if (modifiedEvent === null) {\n ctx.cancel(\n new ContextCancelation({\n retry: false,\n reason: 'dropped by destination middleware',\n })\n )\n }\n\n return new Context(modifiedEvent!)\n }\n\n private _createMethod(\n methodName: 'track' | 'page' | 'identify' | 'alias' | 'group' | 'screen'\n ) {\n return async (ctx: Context): Promise<Context> => {\n if (!this.action[methodName]) return ctx\n\n let transformedContext: Context = ctx\n // Transformations only allowed for destination plugins. Other plugin types support mutating events.\n if (this.type === 'destination') {\n transformedContext = await this.transform(ctx)\n }\n\n try {\n if (!(await this.ready())) {\n throw new Error(\n 'Something prevented the destination from getting ready'\n )\n }\n\n recordIntegrationMetric(ctx, {\n integrationName: this.action.name,\n methodName,\n type: 'action',\n })\n\n await this.action[methodName]!(transformedContext)\n } catch (error) {\n recordIntegrationMetric(ctx, {\n integrationName: this.action.name,\n methodName,\n type: 'action',\n didError: true,\n })\n throw error\n }\n\n return ctx\n }\n }\n\n alias = this._createMethod('alias')\n group = this._createMethod('group')\n identify = this._createMethod('identify')\n page = this._createMethod('page')\n screen = this._createMethod('screen')\n track = this._createMethod('track')\n\n /* --- PASSTHROUGH METHODS --- */\n isLoaded(): boolean {\n return this.action.isLoaded()\n }\n\n async ready(): Promise<boolean> {\n try {\n await this.loadPromise.promise\n return true\n } catch {\n return false\n }\n }\n\n async load(ctx: Context, analytics: Analytics): Promise<unknown> {\n if (this.loadPromise.isSettled()) {\n return this.loadPromise.promise\n }\n\n try {\n recordIntegrationMetric(ctx, {\n integrationName: this.action.name,\n methodName: 'load',\n type: 'action',\n })\n\n const loadP = this.action.load(ctx, analytics)\n\n this.loadPromise.resolve(await loadP)\n return loadP\n } catch (error) {\n recordIntegrationMetric(ctx, {\n integrationName: this.action.name,\n methodName: 'load',\n type: 'action',\n didError: true,\n })\n\n this.loadPromise.reject(error)\n throw error\n }\n }\n\n unload(ctx: Context, analytics: Analytics): Promise<unknown> | unknown {\n return this.action.unload?.(ctx, analytics)\n }\n}\n\nexport type PluginFactory = {\n (settings: JSONValue): Plugin | Plugin[] | Promise<Plugin | Plugin[]>\n pluginName: string\n}\n\nfunction validate(pluginLike: unknown): pluginLike is Plugin[] {\n if (!Array.isArray(pluginLike)) {\n throw new Error('Not a valid list of plugins')\n }\n\n const required = ['load', 'isLoaded', 'name', 'version', 'type']\n pluginLike.forEach((plugin) => {\n required.forEach((method) => {\n if (plugin[method] === undefined) {\n throw new Error(\n `Plugin: ${\n plugin.name ?? 'unknown'\n } missing required function ${method}`\n )\n }\n })\n })\n\n return true\n}\n\nfunction isPluginDisabled(\n userIntegrations: Integrations,\n remotePlugin: RemotePlugin\n) {\n const creationNameEnabled = userIntegrations[remotePlugin.creationName]\n const currentNameEnabled = userIntegrations[remotePlugin.name]\n\n // Check that the plugin isn't explicitly enabled when All: false\n if (\n userIntegrations.All === false &&\n !creationNameEnabled &&\n !currentNameEnabled\n ) {\n return true\n }\n\n // Check that the plugin isn't explicitly disabled\n if (creationNameEnabled === false || currentNameEnabled === false) {\n return true\n }\n\n return false\n}\n\nasync function loadPluginFactory(\n remotePlugin: RemotePlugin,\n obfuscate?: boolean\n): Promise<void | PluginFactory> {\n const defaultCdn = new RegExp('https://cdn.segment.(com|build)')\n const cdn = getCDN()\n\n if (obfuscate) {\n const urlSplit = remotePlugin.url.split('/')\n const name = urlSplit[urlSplit.length - 2]\n const obfuscatedURL = remotePlugin.url.replace(\n name,\n btoa(name).replace(/=/g, '')\n )\n try {\n await loadScript(obfuscatedURL.replace(defaultCdn, cdn))\n } catch (error) {\n // Due to syncing concerns it is possible that the obfuscated action destination (or requested version) might not exist.\n // We should use the unobfuscated version as a fallback.\n await loadScript(remotePlugin.url.replace(defaultCdn, cdn))\n }\n } else {\n await loadScript(remotePlugin.url.replace(defaultCdn, cdn))\n }\n\n // @ts-expect-error\n if (typeof window[remotePlugin.libraryName] === 'function') {\n // @ts-expect-error\n return window[remotePlugin.libraryName] as PluginFactory\n }\n}\n\nexport async function remoteLoader(\n settings: CDNSettings,\n userIntegrations: Integrations,\n mergedIntegrations: Record<string, JSONObject>,\n options?: InitOptions,\n routingMiddleware?: DestinationMiddlewareFunction,\n pluginSources?: PluginFactory[]\n): Promise<Plugin[]> {\n const allPlugins: Plugin[] = []\n\n const routingRules = settings.middlewareSettings?.routingRules ?? []\n\n const pluginPromises = (settings.remotePlugins ?? []).map(\n async (remotePlugin) => {\n if (isPluginDisabled(userIntegrations, remotePlugin)) return\n\n try {\n const pluginFactory =\n pluginSources?.find(\n ({ pluginName }) => pluginName === remotePlugin.name\n ) || (await loadPluginFactory(remotePlugin, options?.obfuscate))\n\n if (pluginFactory) {\n const plugin = await pluginFactory({\n ...remotePlugin.settings,\n ...mergedIntegrations[remotePlugin.name],\n })\n const plugins = Array.isArray(plugin) ? plugin : [plugin]\n\n validate(plugins)\n\n const routing = routingRules.filter(\n (rule) => rule.destinationName === remotePlugin.creationName\n )\n\n plugins.forEach((plugin) => {\n const wrapper = new ActionDestination(\n remotePlugin.creationName,\n plugin\n )\n\n if (routing.length && routingMiddleware) {\n wrapper.addMiddleware(routingMiddleware)\n }\n\n allPlugins.push(wrapper)\n })\n }\n } catch (error) {\n console.warn('Failed to load Remote Plugin', error)\n }\n }\n )\n\n await Promise.all(pluginPromises)\n return allPlugins.filter(Boolean)\n}\n","/**\n * Register event listener on document that fires when:\n * * tab change or tab close (in mobile or desktop)\n * * click back / forward button\n * * click any link or perform any other navigation action\n * * soft refresh / hard refresh\n *\n * adapted from https://stackoverflow.com/questions/3239834/window-onbeforeunload-not-working-on-the-ipad/52864508#52864508,\n */\nexport const onPageChange = (cb: (unloaded: boolean) => void) => {\n let unloaded = false // prevents double firing if both are supported\n\n window.addEventListener('pagehide', () => {\n if (unloaded) return\n unloaded = true\n cb(unloaded)\n })\n\n // using document instead of window because of bug affecting browsers before safari 14 (detail in footnotes https://caniuse.com/?search=visibilitychange)\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState == 'hidden') {\n if (unloaded) return\n unloaded = true\n } else {\n unloaded = false\n }\n cb(unloaded)\n })\n}\n","import { SegmentEvent } from '../../core/events'\nimport { fetch } from '../../lib/fetch'\nimport { onPageChange } from '../../lib/on-page-change'\n\nexport type BatchingDispatchConfig = {\n size?: number\n timeout?: number\n keepalive?: boolean\n}\n\nconst MAX_PAYLOAD_SIZE = 500\nconst MAX_KEEPALIVE_SIZE = 64\n\nfunction kilobytes(buffer: unknown): number {\n const size = encodeURI(JSON.stringify(buffer)).split(/%..|./).length - 1\n return size / 1024\n}\n\n/**\n * Checks if the payload is over or close to\n * the maximum payload size allowed by tracking\n * API.\n */\nfunction approachingTrackingAPILimit(buffer: unknown): boolean {\n return kilobytes(buffer) >= MAX_PAYLOAD_SIZE - 50\n}\n\n/**\n * Checks if payload is over or approaching the limit for keepalive\n * requests. If keepalive is enabled we want to avoid\n * going over this to prevent data loss.\n */\nfunction passedKeepaliveLimit(buffer: unknown): boolean {\n return kilobytes(buffer) >= MAX_KEEPALIVE_SIZE - 10\n}\n\nfunction chunks(batch: object[]): Array<object[]> {\n const result: object[][] = []\n let index = 0\n\n batch.forEach((item) => {\n const size = kilobytes(result[index])\n if (size >= 64) {\n index++\n }\n\n if (result[index]) {\n result[index].push(item)\n } else {\n result[index] = [item]\n }\n })\n\n return result\n}\n\nexport default function batch(\n apiHost: string,\n config?: BatchingDispatchConfig\n) {\n let buffer: object[] = []\n let pageUnloaded = false\n\n const limit = config?.size ?? 10\n const timeout = config?.timeout ?? 5000\n\n function sendBatch(batch: object[]) {\n if (batch.length === 0) {\n return\n }\n\n const writeKey = (batch[0] as SegmentEvent)?.writeKey\n\n // Remove sentAt from every event as batching only needs a single timestamp\n const updatedBatch = batch.map((event) => {\n const { sentAt, ...newEvent } = event as SegmentEvent\n return newEvent\n })\n\n return fetch(`https://${apiHost}/b`, {\n keepalive: config?.keepalive || pageUnloaded,\n headers: {\n 'Content-Type': 'text/plain',\n },\n method: 'post',\n body: JSON.stringify({\n writeKey,\n batch: updatedBatch,\n sentAt: new Date().toISOString(),\n }),\n })\n }\n\n async function flush(): Promise<unknown> {\n if (buffer.length) {\n const batch = buffer\n buffer = []\n return sendBatch(batch)\n }\n }\n\n let schedule: NodeJS.Timeout | undefined\n\n function scheduleFlush(): void {\n if (schedule) {\n return\n }\n\n schedule = setTimeout(() => {\n schedule = undefined\n flush().catch(console.error)\n }, timeout)\n }\n\n onPageChange((unloaded) => {\n pageUnloaded = unloaded\n\n if (pageUnloaded && buffer.length) {\n const reqs = chunks(buffer).map(sendBatch)\n Promise.all(reqs).catch(console.error)\n }\n })\n\n async function dispatch(_url: string, body: object): Promise<unknown> {\n buffer.push(body)\n\n const bufferOverflow =\n buffer.length >= limit ||\n approachingTrackingAPILimit(buffer) ||\n (config?.keepalive && passedKeepaliveLimit(buffer))\n\n return bufferOverflow || pageUnloaded ? flush() : scheduleFlush()\n }\n\n return {\n dispatch,\n }\n}\n","import { Analytics } from '../../core/analytics'\nimport { CDNSettings } from '../../browser'\nimport { SegmentFacade } from '../../lib/to-facade'\nimport { SegmentioSettings } from './index'\n\nexport function normalize(\n analytics: Analytics,\n json: ReturnType<SegmentFacade['json']>,\n settings?: SegmentioSettings,\n integrations?: CDNSettings['integrations']\n): object {\n const user = analytics.user()\n\n delete json.options\n\n json.writeKey = settings?.apiKey\n\n json.userId = json.userId || user.id()\n json.anonymousId = json.anonymousId || user.anonymousId()\n\n json.sentAt = new Date()\n\n const failed = analytics.queue.failedInitializations || []\n if (failed.length > 0) {\n json._metadata = { failedInitializations: failed }\n }\n\n const bundled: string[] = []\n const unbundled: string[] = []\n\n for (const key in integrations) {\n const integration = integrations[key]\n if (key === 'Segment.io') {\n bundled.push(key)\n }\n if (integration.bundlingStatus === 'bundled') {\n bundled.push(key)\n }\n if (integration.bundlingStatus === 'unbundled') {\n unbundled.push(key)\n }\n }\n\n // This will make sure that the disabled cloud mode destinations will be\n // included in the unbundled list.\n for (const settingsUnbundled of settings?.unbundledIntegrations || []) {\n if (!unbundled.includes(settingsUnbundled)) {\n unbundled.push(settingsUnbundled)\n }\n }\n\n const configIds = settings?.maybeBundledConfigIds ?? {}\n const bundledConfigIds: string[] = []\n\n bundled.sort().forEach((name) => {\n ;(configIds[name] ?? []).forEach((id) => {\n bundledConfigIds.push(id)\n })\n })\n\n if (settings?.addBundledMetadata !== false) {\n json._metadata = {\n ...json._metadata,\n bundled: bundled.sort(),\n unbundled: unbundled.sort(),\n bundledIds: bundledConfigIds,\n }\n }\n\n return json\n}\n","import { isOffline } from '../../core/connection'\nimport { Context } from '../../core/context'\nimport { Plugin } from '../../core/plugin'\nimport { attempt } from '@segment/analytics-core'\nimport { pWhile } from '../../lib/p-while'\nimport { PriorityQueue } from '../../lib/priority-queue'\n\nasync function flushQueue(\n xt: Plugin,\n queue: PriorityQueue<Context>\n): Promise<PriorityQueue<Context>> {\n const failedQueue: Context[] = []\n if (isOffline()) {\n return queue\n }\n\n await pWhile(\n () => queue.length > 0 && !isOffline(),\n async () => {\n const ctx = queue.pop()\n if (!ctx) {\n return\n }\n\n const result = await attempt(ctx, xt)\n const success = result instanceof Context\n if (!success) {\n failedQueue.push(ctx)\n }\n }\n )\n // re-add failed tasks\n failedQueue.map((failed) => queue.pushWithBackoff(failed))\n return queue\n}\n\nexport function scheduleFlush(\n flushing: boolean,\n buffer: PriorityQueue<Context>,\n xt: Plugin,\n scheduleFlush: Function\n): void {\n if (flushing) {\n return\n }\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n setTimeout(async () => {\n let isFlushing = true\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n const newBuffer = await flushQueue(xt, buffer)\n isFlushing = false\n\n if (buffer.todo > 0) {\n scheduleFlush(isFlushing, newBuffer, xt, scheduleFlush)\n }\n }, Math.random() * 5000)\n}\n","import { Facade } from '@segment/facade'\nimport { Analytics } from '../../core/analytics'\nimport { CDNSettings } from '../../browser'\nimport { isOffline } from '../../core/connection'\nimport { Context } from '../../core/context'\nimport { Plugin } from '../../core/plugin'\nimport { PriorityQueue } from '../../lib/priority-queue'\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted'\nimport { toFacade } from '../../lib/to-facade'\nimport batch, { BatchingDispatchConfig } from './batched-dispatcher'\nimport standard, { StandardDispatcherConfig } from './fetch-dispatcher'\nimport { normalize } from './normalize'\nimport { scheduleFlush } from './schedule-flush'\nimport { SEGMENT_API_HOST } from '../../core/constants'\n\ntype DeliveryStrategy =\n | {\n strategy?: 'standard'\n config?: StandardDispatcherConfig\n }\n | {\n strategy?: 'batching'\n config?: BatchingDispatchConfig\n }\n\nexport type SegmentioSettings = {\n apiKey: string\n apiHost?: string\n protocol?: 'http' | 'https'\n\n addBundledMetadata?: boolean\n unbundledIntegrations?: string[]\n bundledConfigIds?: string[]\n unbundledConfigIds?: string[]\n\n maybeBundledConfigIds?: Record<string, string[]>\n\n deliveryStrategy?: DeliveryStrategy\n}\n\ntype JSON = ReturnType<Facade['json']>\n\nfunction onAlias(analytics: Analytics, json: JSON): JSON {\n const user = analytics.user()\n json.previousId =\n json.previousId ?? json.from ?? user.id() ?? user.anonymousId()\n json.userId = json.userId ?? json.to\n delete json.from\n delete json.to\n return json\n}\n\nexport function segmentio(\n analytics: Analytics,\n settings?: SegmentioSettings,\n integrations?: CDNSettings['integrations']\n): Plugin {\n // Attach `pagehide` before buffer is created so that inflight events are added\n // to the buffer before the buffer persists events in its own `pagehide` handler.\n window.addEventListener('pagehide', () => {\n buffer.push(...Array.from(inflightEvents))\n inflightEvents.clear()\n })\n\n const writeKey = settings?.apiKey ?? ''\n\n const buffer = analytics.options.disableClientPersistence\n ? new PriorityQueue<Context>(analytics.queue.queue.maxAttempts, [])\n : new PersistedPriorityQueue(\n analytics.queue.queue.maxAttempts,\n `${writeKey}:dest-Segment.io`\n )\n\n const inflightEvents = new Set<Context>()\n const flushing = false\n\n const apiHost = settings?.apiHost ?? SEGMENT_API_HOST\n const protocol = settings?.protocol ?? 'https'\n const remote = `${protocol}://${apiHost}`\n\n const deliveryStrategy = settings?.deliveryStrategy\n const client =\n deliveryStrategy?.strategy === 'batching'\n ? batch(apiHost, deliveryStrategy.config)\n : standard(deliveryStrategy?.config as StandardDispatcherConfig)\n\n async function send(ctx: Context): Promise<Context> {\n if (isOffline()) {\n buffer.push(ctx)\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n scheduleFlush(flushing, buffer, segmentio, scheduleFlush)\n return ctx\n }\n\n inflightEvents.add(ctx)\n\n const path = ctx.event.type.charAt(0)\n\n let json = toFacade(ctx.event).json()\n\n if (ctx.event.type === 'track') {\n delete json.traits\n }\n\n if (ctx.event.type === 'alias') {\n json = onAlias(analytics, json)\n }\n\n return client\n .dispatch(\n `${remote}/${path}`,\n normalize(analytics, json, settings, integrations)\n )\n .then(() => ctx)\n .catch(() => {\n buffer.pushWithBackoff(ctx)\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n scheduleFlush(flushing, buffer, segmentio, scheduleFlush)\n return ctx\n })\n .finally(() => {\n inflightEvents.delete(ctx)\n })\n }\n\n const segmentio: Plugin = {\n name: 'Segment.io',\n type: 'destination',\n version: '0.1.0',\n isLoaded: (): boolean => true,\n load: (): Promise<void> => Promise.resolve(),\n track: send,\n identify: send,\n page: send,\n alias: send,\n group: send,\n screen: send,\n }\n\n // Buffer may already have items if they were previously stored in localStorage.\n // Start flushing them immediately.\n if (buffer.todo) {\n scheduleFlush(flushing, buffer, segmentio, scheduleFlush)\n }\n\n return segmentio\n}\n","import { fetch } from '../../lib/fetch'\n\nexport type Dispatcher = (url: string, body: object) => Promise<unknown>\n\nexport type StandardDispatcherConfig = {\n keepalive?: boolean\n}\n\nexport default function (config?: StandardDispatcherConfig): {\n dispatch: Dispatcher\n} {\n function dispatch(url: string, body: object): Promise<unknown> {\n return fetch(url, {\n keepalive: config?.keepalive,\n headers: { 'Content-Type': 'text/plain' },\n method: 'post',\n body: JSON.stringify(body),\n })\n }\n\n return {\n dispatch,\n }\n}\n","import { getGlobal } from '../../lib/get-global'\nimport type { Analytics } from '../analytics'\n\nconst env = getGlobal()\n\n// The code below assumes the inspector extension will use Object.assign\n// to add the inspect interface on to this object reference (unless the\n// extension code ran first and has already set up the variable)\nconst inspectorHost: {\n attach: (analytics: Analytics) => void\n} = ((env as any)['__SEGMENT_INSPECTOR__'] ??= {})\n\nexport const attachInspector = (analytics: Analytics) =>\n inspectorHost.attach?.(analytics as any)\n","import { getProcessEnv } from '../lib/get-process-env'\nimport { getCDN, setGlobalCDNUrl } from '../lib/parse-cdn'\n\nimport { fetch } from '../lib/fetch'\nimport { Analytics, NullAnalytics, InitOptions } from '../core/analytics'\nimport { Context } from '../core/context'\nimport { Plan } from '../core/events'\nimport { Plugin } from '../core/plugin'\nimport { MetricsOptions } from '../core/stats/remote-metrics'\nimport { mergedOptions } from '../lib/merged-options'\nimport { createDeferred } from '@segment/analytics-generic-utils'\nimport { envEnrichment } from '../plugins/env-enrichment'\nimport {\n PluginFactory,\n remoteLoader,\n RemotePlugin,\n} from '../plugins/remote-loader'\nimport type { RoutingRule } from '../plugins/routing-middleware'\nimport { segmentio, SegmentioSettings } from '../plugins/segmentio'\nimport {\n AnalyticsBuffered,\n PreInitMethodCallBuffer,\n flushAnalyticsCallsInNewTask,\n flushAddSourceMiddleware,\n flushSetAnonymousID,\n flushOn,\n PreInitMethodCall,\n} from '../core/buffer'\nimport { ClassicIntegrationSource } from '../plugins/ajs-destination/types'\nimport { attachInspector } from '../core/inspector'\nimport { Stats } from '../core/stats'\nimport { setGlobalAnalyticsKey } from '../lib/global-analytics-helper'\n\nexport interface RemoteIntegrationSettings {\n /* @deprecated - This does not indicate browser types anymore */\n type?: string\n\n versionSettings?: {\n version?: string\n override?: string\n componentTypes?: ('browser' | 'android' | 'ios' | 'server')[]\n }\n\n /**\n * We know if an integration is device mode if it has `bundlingStatus: 'bundled'` and the `browser` componentType in `versionSettings`.\n * History: The term 'bundle' is left over from before action destinations, when a device mode destinations were 'bundled' in a custom bundle for every analytics.js source.\n */\n bundlingStatus?: 'bundled' | 'unbundled'\n\n /**\n * Consent settings for the integration\n */\n consentSettings?: {\n /**\n * Consent categories for the integration\n * @example [\"CAT001\", \"CAT002\"]\n */\n categories: string[]\n }\n\n // Segment.io specific\n retryQueue?: boolean\n\n // any extra unknown settings\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any\n}\n\n/**\n * The remote settings object for a source, typically fetched from the Segment CDN.\n * Warning: this is an *unstable* object.\n */\nexport interface CDNSettings {\n integrations: {\n [creationName: string]: RemoteIntegrationSettings\n }\n\n middlewareSettings?: {\n routingRules: RoutingRule[]\n }\n\n enabledMiddleware?: Record<string, boolean>\n metrics?: MetricsOptions\n\n plan?: Plan\n\n legacyVideoPluginsEnabled?: boolean\n\n remotePlugins?: RemotePlugin[]\n\n /**\n * Top level consent settings\n */\n consentSettings?: {\n /**\n * All unique consent categories for enabled destinations.\n * There can be categories in this array that are important for consent that are not included in any integration (e.g. 2 cloud mode categories).\n * @example [\"Analytics\", \"Advertising\", \"CAT001\"]\n */\n allCategories: string[]\n\n /**\n * Whether or not there are any unmapped destinations for enabled destinations.\n */\n hasUnmappedDestinations: boolean\n }\n /**\n * Settings for edge function. Used for signals.\n */\n edgeFunction?: // this is technically non-nullable according to ajs-renderer atm, but making it optional because it's strange API choice, and we might want to change it.\n | {\n /**\n * The URL of the edge function (.js file).\n * @example 'https://cdn.edgefn.segment.com/MY-WRITEKEY/foo.js',\n */\n downloadURL: string\n /**\n * The version of the edge function\n * @example 1\n */\n version: number\n }\n | {}\n}\n\nexport interface AnalyticsBrowserSettings {\n writeKey: string\n /**\n * The settings for the Segment Source.\n * If provided, `AnalyticsBrowser` will not fetch remote settings\n * for the source.\n */\n cdnSettings?: CDNSettings & Record<string, unknown>\n /**\n * If provided, will override the default Segment CDN (https://cdn.segment.com) for this application.\n */\n cdnURL?: string\n /**\n * Plugins or npm-installed action destinations\n */\n plugins?: (Plugin | PluginFactory)[]\n /**\n * npm-installed classic destinations\n */\n classicIntegrations?: ClassicIntegrationSource[]\n}\n\nexport function loadCDNSettings(\n writeKey: string,\n cdnURL?: string\n): Promise<CDNSettings> {\n const baseUrl = cdnURL ?? getCDN()\n\n return fetch(`${baseUrl}/v1/projects/${writeKey}/settings`)\n .then((res) => {\n if (!res.ok) {\n return res.text().then((errorResponseMessage) => {\n throw new Error(errorResponseMessage)\n })\n }\n return res.json()\n })\n .catch((err) => {\n console.error(err.message)\n throw err\n })\n}\n\nfunction hasLegacyDestinations(settings: CDNSettings): boolean {\n return (\n getProcessEnv().NODE_ENV !== 'test' &&\n // just one integration means segmentio\n Object.keys(settings.integrations).length > 1\n )\n}\n\nfunction hasTsubMiddleware(settings: CDNSettings): boolean {\n return (\n getProcessEnv().NODE_ENV !== 'test' &&\n (settings.middlewareSettings?.routingRules?.length ?? 0) > 0\n )\n}\n\n/**\n * With AJS classic, we allow users to call setAnonymousId before the library initialization.\n * This is important because some of the destinations will use the anonymousId during the initialization,\n * and if we set anonId afterwards, that wouldn’t impact the destination.\n *\n * Also Ensures events can be registered before library initialization.\n * This is important so users can register to 'initialize' and any events that may fire early during setup.\n */\nfunction flushPreBuffer(\n analytics: Analytics,\n buffer: PreInitMethodCallBuffer\n): void {\n flushSetAnonymousID(analytics, buffer)\n flushOn(analytics, buffer)\n}\n\n/**\n * Finish flushing buffer and cleanup.\n */\nasync function flushFinalBuffer(\n analytics: Analytics,\n buffer: PreInitMethodCallBuffer\n): Promise<void> {\n // Call popSnippetWindowBuffer before each flush task since there may be\n // analytics calls during async function calls.\n await flushAddSourceMiddleware(analytics, buffer)\n flushAnalyticsCallsInNewTask(analytics, buffer)\n // Clear buffer, just in case analytics is loaded twice; we don't want to fire events off again.\n buffer.clear()\n}\n\nasync function registerPlugins(\n writeKey: string,\n cdnSettings: CDNSettings,\n analytics: Analytics,\n options: InitOptions,\n pluginLikes: (Plugin | PluginFactory)[] = [],\n legacyIntegrationSources: ClassicIntegrationSource[]\n): Promise<Context> {\n const plugins = pluginLikes?.filter(\n (pluginLike) => typeof pluginLike === 'object'\n ) as Plugin[]\n\n const pluginSources = pluginLikes?.filter(\n (pluginLike) =>\n typeof pluginLike === 'function' &&\n typeof pluginLike.pluginName === 'string'\n ) as PluginFactory[]\n\n const tsubMiddleware = hasTsubMiddleware(cdnSettings)\n ? await import(\n /* webpackChunkName: \"tsub-middleware\" */ '../plugins/routing-middleware'\n ).then((mod) => {\n return mod.tsubMiddleware(cdnSettings.middlewareSettings!.routingRules)\n })\n : undefined\n\n const legacyDestinations =\n hasLegacyDestinations(cdnSettings) || legacyIntegrationSources.length > 0\n ? await import(\n /* webpackChunkName: \"ajs-destination\" */ '../plugins/ajs-destination'\n ).then((mod) => {\n return mod.ajsDestinations(\n writeKey,\n cdnSettings,\n analytics.integrations,\n options,\n tsubMiddleware,\n legacyIntegrationSources\n )\n })\n : []\n\n if (cdnSettings.legacyVideoPluginsEnabled) {\n await import(\n /* webpackChunkName: \"legacyVideos\" */ '../plugins/legacy-video-plugins'\n ).then((mod) => {\n return mod.loadLegacyVideoPlugins(analytics)\n })\n }\n\n const schemaFilter = options.plan?.track\n ? await import(\n /* webpackChunkName: \"schemaFilter\" */ '../plugins/schema-filter'\n ).then((mod) => {\n return mod.schemaFilter(options.plan?.track, cdnSettings)\n })\n : undefined\n\n const mergedSettings = mergedOptions(cdnSettings, options)\n const remotePlugins = await remoteLoader(\n cdnSettings,\n analytics.integrations,\n mergedSettings,\n options,\n tsubMiddleware,\n pluginSources\n ).catch(() => [])\n\n const toRegister = [\n envEnrichment,\n ...plugins,\n ...legacyDestinations,\n ...remotePlugins,\n ]\n\n if (schemaFilter) {\n toRegister.push(schemaFilter)\n }\n\n const shouldIgnoreSegmentio =\n (options.integrations?.All === false &&\n !options.integrations['Segment.io']) ||\n (options.integrations && options.integrations['Segment.io'] === false)\n\n if (!shouldIgnoreSegmentio) {\n toRegister.push(\n await segmentio(\n analytics,\n mergedSettings['Segment.io'] as SegmentioSettings,\n cdnSettings.integrations\n )\n )\n }\n\n const ctx = await analytics.register(...toRegister)\n\n if (\n Object.entries(cdnSettings.enabledMiddleware ?? {}).some(\n ([, enabled]) => enabled\n )\n ) {\n await import(\n /* webpackChunkName: \"remoteMiddleware\" */ '../plugins/remote-middleware'\n ).then(async ({ remoteMiddlewares }) => {\n const middleware = await remoteMiddlewares(\n ctx,\n cdnSettings,\n options.obfuscate\n )\n const promises = middleware.map((mdw) =>\n analytics.addSourceMiddleware(mdw)\n )\n return Promise.all(promises)\n })\n }\n\n return ctx\n}\n\nasync function loadAnalytics(\n settings: AnalyticsBrowserSettings,\n options: InitOptions = {},\n preInitBuffer: PreInitMethodCallBuffer\n): Promise<[Analytics, Context]> {\n // return no-op analytics instance if disabled\n if (options.disable === true) {\n return [new NullAnalytics(), Context.system()]\n }\n\n if (options.globalAnalyticsKey)\n setGlobalAnalyticsKey(options.globalAnalyticsKey)\n // this is an ugly side-effect, but it's for the benefits of the plugins that get their cdn via getCDN()\n if (settings.cdnURL) setGlobalCDNUrl(settings.cdnURL)\n\n if (options.initialPageview) {\n // capture the page context early, so it's always up-to-date\n preInitBuffer.push(new PreInitMethodCall('page', []))\n }\n\n let cdnSettings =\n settings.cdnSettings ??\n (await loadCDNSettings(settings.writeKey, settings.cdnURL))\n\n if (options.updateCDNSettings) {\n cdnSettings = options.updateCDNSettings(cdnSettings)\n }\n\n // if options.disable is a function, we allow user to disable analytics based on CDN Settings\n if (typeof options.disable === 'function') {\n const disabled = await options.disable(cdnSettings)\n if (disabled) {\n return [new NullAnalytics(), Context.system()]\n }\n }\n\n const retryQueue: boolean =\n cdnSettings.integrations['Segment.io']?.retryQueue ?? true\n\n options = {\n retryQueue,\n ...options,\n }\n\n const analytics = new Analytics({ ...settings, cdnSettings }, options)\n\n attachInspector(analytics)\n\n const plugins = settings.plugins ?? []\n\n const classicIntegrations = settings.classicIntegrations ?? []\n\n const segmentLoadOptions = options.integrations?.['Segment.io'] as\n | SegmentioSettings\n | undefined\n\n Stats.initRemoteMetrics({\n ...cdnSettings.metrics,\n host: segmentLoadOptions?.apiHost ?? cdnSettings.metrics?.host,\n protocol: segmentLoadOptions?.protocol,\n })\n\n // needs to be flushed before plugins are registered\n flushPreBuffer(analytics, preInitBuffer)\n\n const ctx = await registerPlugins(\n settings.writeKey,\n cdnSettings,\n analytics,\n options,\n plugins,\n classicIntegrations\n )\n\n const search = window.location.search ?? ''\n const hash = window.location.hash ?? ''\n\n const term = search.length ? search : hash.replace(/(?=#).*(?=\\?)/, '')\n\n if (term.includes('ajs_')) {\n await analytics.queryString(term).catch(console.error)\n }\n\n analytics.initialized = true\n analytics.emit('initialize', settings, options)\n\n await flushFinalBuffer(analytics, preInitBuffer)\n\n return [analytics, ctx]\n}\n\n/**\n * The public browser interface for Segment Analytics\n *\n * @example\n * ```ts\n * export const analytics = new AnalyticsBrowser()\n * analytics.load({ writeKey: 'foo' })\n * ```\n * @link https://github.com/segmentio/analytics-next/#readme\n */\nexport class AnalyticsBrowser extends AnalyticsBuffered {\n private _resolveLoadStart: (\n settings: AnalyticsBrowserSettings,\n options: InitOptions\n ) => void\n\n constructor() {\n const { promise: loadStart, resolve: resolveLoadStart } =\n createDeferred<Parameters<AnalyticsBrowser['load']>>()\n\n super((buffer) =>\n loadStart.then(([settings, options]) =>\n loadAnalytics(settings, options, buffer)\n )\n )\n\n this._resolveLoadStart = (settings, options) =>\n resolveLoadStart([settings, options])\n }\n\n /**\n * Fully initialize an analytics instance, including:\n *\n * * Fetching settings from the segment CDN (by default).\n * * Fetching all remote destinations configured by the user (if applicable).\n * * Flushing buffered analytics events.\n * * Loading all middleware.\n *\n * Note:️ This method should only be called *once* in your application.\n *\n * @example\n * ```ts\n * export const analytics = new AnalyticsBrowser()\n * analytics.load({ writeKey: 'foo' })\n * ```\n */\n load(\n settings: AnalyticsBrowserSettings,\n options: InitOptions = {}\n ): AnalyticsBrowser {\n this._resolveLoadStart(settings, options)\n return this\n }\n\n /**\n * Instantiates an object exposing Analytics methods.\n *\n * @example\n * ```ts\n * const ajs = AnalyticsBrowser.load({ writeKey: '<YOUR_WRITE_KEY>' })\n *\n * ajs.track(\"foo\")\n * ...\n * ```\n */\n static load(\n settings: AnalyticsBrowserSettings,\n options: InitOptions = {}\n ): AnalyticsBrowser {\n return new AnalyticsBrowser().load(settings, options)\n }\n\n static standalone(\n writeKey: string,\n options?: InitOptions\n ): Promise<Analytics> {\n return AnalyticsBrowser.load({ writeKey }, options).then((res) => res[0])\n }\n}\n","import { BREAKPOINTS } from \"utils/constants\";\n\n// Redux\nimport store from \"store\";\nimport { callIdentify } from \"store/slices/accountSlice\";\n\n// Tracking\nimport { ampli } from \"ampli\";\nimport { AnalyticsBrowser } from \"@segment/analytics-next\";\n\n/**\n *\n * @param {String} string - String you want to capitalise\n * @returns {String} Capitalised string\n */\nexport function capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\n/**\n *\n * @param {Number} width\n */\nexport function calculateDevice({ width }) {\n const device = {};\n if (width <= BREAKPOINTS.mobile) {\n device.isMobile = true;\n } else if (width < BREAKPOINTS.tablet) {\n device.isTablet = true;\n } else if (width >= BREAKPOINTS.tablet) {\n device.isDesktop = true;\n }\n return { ...device };\n}\n\n/**\n *\n * @param {Function} func\n * @param {Number} wait\n * @param {Boolean} immediate\n * @returns {Object} object\n */\nexport function debounce(func, wait, immediate) {\n let timeout;\n return function () {\n const context = this,\n args = arguments;\n const later = function () {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\n/**\n *\n * @param {String} id\n */\n\nexport function focusLastInputFieldCharacter(id) {\n const inputField = document.getElementById(id);\n\n if (inputField != null && inputField.value.length != 0) {\n if (inputField.createTextRange) {\n let FieldRange = inputField.createTextRange();\n FieldRange.moveStart(\"character\", inputField.value.length);\n FieldRange.collapse();\n FieldRange.select();\n } else if (inputField.selectionStart || inputField.selectionStart == \"0\") {\n let elemLen = inputField.value.length;\n inputField.selectionStart = elemLen;\n inputField.selectionEnd = elemLen;\n inputField.focus();\n }\n } else {\n inputField.focus();\n }\n}\n\n/**\n *\n * @param {Number} status\n * @param {Boolean} isTemporaryLocked\n */\nexport function getStatusForAmpli({ isTemporaryLocked, status }) {\n const valueForLockStatus = isTemporaryLocked ? \"locked temp\" : \"permanent lock\";\n const AMPLI_STATUS = {\n 200: \"successful\",\n 423: valueForLockStatus,\n 400: \"input error\",\n 500: \"server error\",\n };\n return AMPLI_STATUS[status];\n}\n\n/**\n * Determines if the provided Object is empty, incase of null/undefined Object, returns true\n * @param {object} obj\n * @returns {Boolean}\n */\nexport function isEmptyObj(obj) {\n if (!obj) return true;\n return typeof obj === \"object\" && Object.keys(obj).length === 0;\n}\n\n/**\n *\n * @param {Object} params\n */\nexport function queryParamsBuilder(params) {\n const encode = encodeURIComponent;\n const queryParams = Object.keys(params)\n .map(k => {\n if (!params[k]) return;\n return `${encode(k)}=${encode(params[k])}`;\n })\n .join(\"&\");\n return queryParams;\n}\n\n/**\n * @param {String} val\n * @returns {Boolean}\n */\nexport function validateEmail(val) {\n return val.match(/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,16}$/g);\n}\n\n/**\n * @param {String} val\n * @returns {Boolean}\n */\nexport function validatePassword(val) {\n return val.match(/^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{14,}$/g);\n}\n\nexport function identifyUserInTrackingSystem({ source }) {\n store.dispatch(callIdentify()).then(result => {\n const { contact: conNbr, contactTypes, email: userEmailAddress, success } = result.payload;\n const role = contactTypes[0] || \"anonymous\";\n const userData = { email: userEmailAddress, user_id: conNbr, user_type: role };\n\n if (success) {\n const segment = AnalyticsBrowser.load({\n writeKey: process.env.REACT_APP_SEGMENT_WRITE_KEY,\n });\n\n segment.identify(conNbr, { userEmailAddress, role: role });\n\n switch (source) {\n case \"login-page\":\n ampli.loginCompleted(userData);\n break;\n case \"password-page\":\n ampli.passwordCreated(userData);\n ampli.loginCompleted(userData);\n break;\n }\n }\n });\n}\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\n\n// Components\nimport { Modal } from \"@octopus-investments/deep-sea-components\";\n\n// Tools\nimport { ADVISER_PHONE, INVESTOR_PHONE } from \"utils/constants\";\nimport { isEmptyObj } from \"utils/helpers\";\n\n// Styles\nimport \"./ServerError.scss\";\n\nexport default function ServerError() {\n const apiErrors = useSelector(({ apiErrors }) => apiErrors);\n const showModal = !isEmptyObj(apiErrors);\n return (\n showModal && (\n <Modal\n className=\"server-error-modal\"\n id=\"ServerErrorModal\"\n showModal={showModal}\n showCloseIcon={false}\n >\n <h3 className=\"coheadline\">Something went wrong and we're working to fix it.</h3>\n\n <div className=\"information-block\">\n <p>Sorry we couldn't load your details. Please try again by refreshing the page.</p>\n <p>\n If you need help straight away, get in touch. If you're an investor, please call{\" \"}\n {INVESTOR_PHONE}. If you're an adviser, please call {ADVISER_PHONE}.\n </p>\n </div>\n </Modal>\n )\n );\n}\n","import { useEffect, useRef } from \"react\";\n\nconst createRootElem = id => {\n const rootContainer = document.createElement(\"div\");\n rootContainer.setAttribute(\"id\", id);\n return rootContainer;\n};\n\nconst addRootElem = rootElem => {\n document.body.insertBefore(rootElem, document.body.lastElementChild.nextElementSibling);\n};\n\nexport default function usePortal() {\n const rootElemRef = useRef(null);\n\n useEffect(() => {\n const existingParent = document.querySelector(\"#root\");\n const parentElem = existingParent || createRootElem(\"root\");\n\n if (!existingParent) addRootElem(parentElem);\n\n parentElem.appendChild(rootElemRef.current);\n\n return () => {\n rootElemRef.current.remove();\n if (parentElem.childNodes.length === -1) parentElem.remove();\n };\n }, []);\n\n const getRootElem = () => {\n if (!rootElemRef.current) rootElemRef.current = document.createElement(\"portal\");\n return rootElemRef.current;\n };\n\n return getRootElem();\n}\n","import { createPortal } from \"react-dom\";\n\n// Hooks\nimport usePortal from \"hooks/usePortal\";\n\nexport default function Portal({ children }) {\n const target = usePortal();\n\n return createPortal(children, target);\n}\n","import PropTypes from \"prop-types\";\n\n// Components\nimport { Link } from \"@octopus-investments/deep-sea-components\";\n\n// Tracking\nimport { ampli } from \"ampli\";\n\n// Styles\nimport \"./FooterText.scss\";\n\nexport default function FooterText({ isEnabled = true }) {\n function linkClicked(_e, isPrivacy) {\n if (isPrivacy) ampli.privacyPolicyClicked();\n else ampli.termsAndConditionsClicked();\n return true;\n }\n\n return (\n isEnabled && (\n <div className=\"footer-txt\">\n <div className=\"container\">\n By signing up, you accept our{\" \"}\n <Link\n href=\"https://octopusinvestments.com/terms-conditions/\"\n onPointerDown={e => linkClicked(e, false)}\n target=\"_blank\"\n title=\"View Octopus Terms & Conditions\"\n >\n Terms & Conditions\n </Link>{\" \"}\n and{\" \"}\n <Link\n href=\"https://octopusinvestments.com/privacy-notice/\"\n onPointerDown={e => linkClicked(e, true)}\n target=\"_blank\"\n title=\"View Octopus Privacy Policy\"\n >\n Privacy Policy\n </Link>\n .\n </div>\n </div>\n )\n );\n}\n\nFooterText.propTypes = {\n isEnabled: PropTypes.bool,\n};\n","import { useState, useEffect } from \"react\";\nimport { calculateDevice, debounce } from \"../utils/helpers\";\n\n/**\n *\n * @returns {{ isDesktop: Boolean, isMobile: Boolean, isTablet: Boolean, height: Number, width: Number }} Returns the device type, height and width of the window\n */\nfunction getSize() {\n return {\n dimensions: { height: window.innerHeight, width: window.innerWidth },\n ...calculateDevice({ height: window.innerHeight, width: window.innerWidth }),\n };\n}\n\n/**\n * Hook that dynamic returns the device type, height and width of the `window`.\n * Updates upon trigger of the window resizing (EventListener).\n * @returns {{ isDesktop: Boolean, isMobile: Boolean, isTablet: Boolean, height: Number, width: Number }} returns the height and width of the window\n */\nexport default function useWindowSize() {\n const [windowSize, setWindowSize] = useState(getSize);\n\n useEffect(() => {\n // Debounce to avoid the function fire multiple times\n const handleResize = debounce(function handleResize() {\n setWindowSize(getSize());\n }, 150);\n\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n return windowSize;\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// Assets\nimport logo from \"assets/images/logo.svg\";\nimport bCorpBlackLogo from \"assets/images/b-corp-logo-black.png\";\nimport bCorpWhiteLogo from \"assets/images/b-corp-logo-white.png\";\n\n// Components\nimport AccountLockedModal from \"components/Modals/AccountLocked/AccountLocked\";\nimport ServerErrorModal from \"components/Modals/ServerError/ServerError\";\nimport Portal from \"components/Portal/Portal\";\nimport FooterText from \"components/FooterText/FooterText\";\n\n// Tools\nimport useWindowSize from \"hooks/useWindowSize\";\n\nexport default function Main(props) {\n const { isDesktop } = useWindowSize();\n\n return (\n <div className=\"layout layout-main\">\n <Portal>\n <AccountLockedModal />\n <ServerErrorModal />\n </Portal>\n {!isDesktop && <img src={bCorpBlackLogo} className=\"b-corp-logo\" alt=\"B-Corp logo\" />}\n <div className=\"left-wrapper\">\n <div className=\"container\">\n <div className=\"content\">\n <div className=\"empty-block\"></div>\n <div className=\"b-corp\">\n <div className=\"ta-c\">\n <img src={bCorpWhiteLogo} className=\"b-corp-logo\" alt=\"B-Corp logo\" />\n </div>\n <div className=\"coheadline fs-20 ta-c mt1\">\n We're proud to be a certified B Corporation <span className=\"fs-22\">©</span>\n </div>\n <div className=\"mt2 ta-c\">\n Being a B Corp means our social and environmental performance, accountability and\n transparency have been assessed and certified. We strongly believe that there is no\n trade-off between 'doing good' and making money, and our business can pursue purpose\n as well as profit. We care about how we do business.\n </div>\n </div>\n </div>\n </div>\n </div>\n <div className=\"right-wrapper\">\n <div className=\"container\">\n <div className=\"content\">\n <div className=\"main\">\n <img src={logo} className=\"logo\" alt=\"OI logo\" />\n {props.children}\n </div>\n </div>\n <FooterText isEnabled={props.showFooterText} />\n </div>\n </div>\n </div>\n );\n}\n\nMain.propTypes = {\n showFooterText: PropTypes.bool,\n children: PropTypes.node.isRequired,\n};\n","import React, { useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport classNames from \"classnames\";\n\n// Layouts\nimport MainLayout from \"layouts/Main\";\n\n// Components\nimport { Button } from \"@octopus-investments/deep-sea-components\";\n\n// Actions\nimport { setContent, setEmailNotSent } from \"store/slices/applicationSlice\";\nimport { setResendButtonLoader } from \"store/slices/loadersSlice\";\nimport { sendNewEmail } from \"store/slices/accountSlice\";\n\n// Tools\nimport { ADVISER_PHONE, INVESTOR_PHONE } from \"utils/constants\";\n\n// Tracking\nimport { ampli } from \"ampli\";\n\n// Styles\nimport \"./CheckEmailMessagePage.scss\";\n\nexport default function CheckEmailMessagePage() {\n const [status, setStatus] = useState(\"Check your email\");\n\n const {\n backButtonTarget,\n email,\n isEmailNotSent,\n token: isHideBackButton,\n } = useSelector(({ application }) => application);\n const { isResendButtonLoader } = useSelector(({ loaders }) => loaders);\n\n // Redux\n const reduxDispatch = useDispatch();\n\n function handleBackButton() {\n ampli.backButtonClicked({\n di_email_entered: email,\n location: \"di_check_your_email_page\",\n });\n\n reduxDispatch(setContent(backButtonTarget));\n }\n\n function handleResendButton() {\n if (isResendButtonLoader) return;\n\n reduxDispatch(setResendButtonLoader(true));\n reduxDispatch(setEmailNotSent(false));\n\n const returnUrl = new URLSearchParams(window.location.search).get(\"returnUrl\");\n\n reduxDispatch(sendNewEmail({ returnUrl })).then(result => {\n const { success } = result.payload;\n\n ampli.resendEmailClicked({\n di_email_entered: email,\n });\n\n if (success) {\n setStatus(\"A new link has been sent to your email\");\n } else {\n reduxDispatch(setEmailNotSent(true));\n return reduxDispatch(setResendButtonLoader(false));\n }\n });\n }\n\n const renderButtonsBlock = () => {\n return (\n <div className={classNames(\"buttons-block\", isHideBackButton && \"no-back-button\")}>\n {!isHideBackButton && <Button onClick={handleBackButton} label=\"Back\" variant=\"outline\" />}\n <Button\n isLoading={isResendButtonLoader}\n onClick={handleResendButton}\n label=\"Resend\"\n variant=\"solid\"\n />\n </div>\n );\n };\n\n const renderErrorBlock = () => {\n return (\n <>\n <h1 className=\"coheadline\">Email not sent</h1>\n <div className=\"information-block\">\n <p>\n Unfortunately, your email could not be sent. Please try again by clicking 'Resend'\n below.\n </p>\n <p>\n If this still doesn't work, get in touch. If you’re an investor please call{\" \"}\n {INVESTOR_PHONE}. If you’re an adviser please call {ADVISER_PHONE}.\n </p>\n </div>\n {renderButtonsBlock()}\n </>\n );\n };\n\n const renderDefaultBlock = () => {\n return (\n <>\n <h1 className=\"coheadline\">{status}</h1>\n\n <p className=\"copy\">\n We've emailed you a link to create a secure password for your online account. This should\n arrive within five minutes. Please note, the link will expire after 12 hours.\n </p>\n\n {renderButtonsBlock()}\n\n <div className=\"password-criteria-block\">\n <p>Your password must contain:</p>\n <ul>\n <li>14 characters or more</li>\n <li>At least one lower case letter</li>\n <li>At least one upper case letter</li>\n <li>At least one number</li>\n </ul>\n </div>\n </>\n );\n };\n\n return (\n <MainLayout>\n <div className=\"check-email-content\">\n {isEmailNotSent ? renderErrorBlock() : renderDefaultBlock()}\n </div>\n </MainLayout>\n );\n}\n","import React, { useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\n// Components\nimport {\n Button,\n Link,\n InputField,\n Modal,\n SupportingMessage,\n} from \"@octopus-investments/deep-sea-components\";\nimport Portal from \"components/Portal/Portal\";\n\n// Actions\nimport { setContent, setEmailAddress } from \"store/slices/applicationSlice\";\nimport { setCONReminderButtonLoader } from \"store/slices/loadersSlice\";\nimport { remindCON } from \"store/slices/accountSlice\";\n\n// Tools\nimport { capitalizeFirstLetter, focusLastInputFieldCharacter, validateEmail } from \"utils/helpers\";\nimport { VALIDATION_ERRORS, SYSTEM_ERRORS } from \"utils/constants\";\n\n// Tracking\nimport { ampli } from \"ampli\";\n\n// Styles\nimport \"./CONReminder.scss\";\n\nexport default function CONReminder({ fromError = false, firstLetterCapitalised = false }) {\n const { email: emailAddress } = useSelector(({ application }) => application);\n const { isConReminderButtonLoader } = useSelector(({ loaders }) => loaders);\n\n const [email, setEmail] = useState(emailAddress);\n\n const [showModal, setShowModal] = useState(false);\n const [showDone, setShowDone] = useState(false);\n\n const [showValidationError, setShowValidationError] = useState(false);\n const [showSystemError, setShowSystemError] = useState(false);\n const [statusCode, setStatusCode] = useState(undefined);\n\n const CON_REMINDER_MODAL_LINK_TEXT = \"send an account number reminder\";\n\n // Redux\n const reduxDispatch = useDispatch();\n\n const handleEmailFieldChange = e => {\n if (showValidationError) setShowValidationError(false);\n if (showSystemError) setShowSystemError(false);\n\n setEmail(e.value);\n };\n\n const handleEmailFieldKeyPress = e => {\n if (e.which === 13 && !isConReminderButtonLoader) handleSendReminderClicked();\n };\n\n const handleSendReminderClicked = () => {\n if (isConReminderButtonLoader) return;\n\n const isEmailValid = Boolean(validateEmail(email));\n setShowValidationError(!isEmailValid);\n\n ampli.sendAccountNumberReminderSent({\n di_email_entered: email,\n di_email_criteria_met: isEmailValid,\n });\n\n if (!isEmailValid) return;\n\n reduxDispatch(setCONReminderButtonLoader(true));\n\n reduxDispatch(remindCON({ email })).then(result => {\n const { success, status } = result.payload;\n\n if (success) {\n setShowDone(true);\n } else {\n setShowSystemError(true);\n setStatusCode(status);\n return reduxDispatch(setCONReminderButtonLoader(false));\n }\n });\n };\n\n const handleCancelButtonClicked = () => {\n focusLastInputFieldCharacter(\"confirmCONPageCONInput\");\n setShowModal(!showModal);\n setShowDone(false);\n\n ampli.sendAccountNumberReminderCancelled({\n di_email_entered: email,\n });\n };\n\n const handleClickToLoginLink = () => {\n reduxDispatch(setEmailAddress(email));\n\n ampli.loginLinkClicked({\n di_email_entered: email,\n location: \"di_send_account_number_reminder_modal\",\n });\n\n reduxDispatch(setContent(\"login\"));\n };\n\n const handleCONReminder = () => {\n ampli.sendAccountNumberReminderClicked({\n di_email_entered: email,\n location: fromError ? \"di_cant_find_account_error\" : \"di_confirm_account_number\",\n });\n\n setShowModal(true);\n };\n\n const renderConfirmationBlock = () => {\n return (\n <>\n <h3 className=\"coheadline\">Account number reminder sent</h3>\n <div className=\"information-sent-block\">\n <p>\n We just sent a reminder to <strong>{email}</strong>.\n </p>\n <div className=\"button-block\">\n <Button onClick={handleCancelButtonClicked} label=\"Done\" />\n </div>\n </div>\n </>\n );\n };\n\n const renderEnterEmailField = () => {\n const renderEmailServiceError = () => {\n return SYSTEM_ERRORS[\"424\"];\n };\n\n const renderEmailExistsError = () => {\n return (\n <>\n {VALIDATION_ERRORS[\"emailExists\"]}{\" \"}\n <Link isInline onLinkClick={handleClickToLoginLink}>\n Please click here to login\n </Link>\n </>\n );\n };\n\n let errorMsg;\n if (showSystemError) {\n if (statusCode === 424) {\n errorMsg = renderEmailServiceError();\n } else {\n errorMsg = renderEmailExistsError();\n }\n } else {\n errorMsg = VALIDATION_ERRORS[\"wrongPattern\"];\n }\n\n const showError = showSystemError || showValidationError;\n\n return (\n <>\n <h3 className=\"coheadline\">Send an account number reminder</h3>\n <div className=\"enter-your-email-block\">\n <InputField\n autoComplete=\"off\"\n autoFocus\n autocompletetype=\"email\"\n className=\"client-email\"\n defaultValue={email}\n error={showError}\n label=\"Email address\"\n onChange={handleEmailFieldChange}\n onKeyPress={handleEmailFieldKeyPress}\n placeholder=\"Your email\"\n required\n showError={showError}\n type=\"email\"\n />\n {showError && <SupportingMessage status=\"error\" message={errorMsg} />}\n <div className=\"buttons-block\">\n <Button\n onClick={handleCancelButtonClicked}\n id=\"conReminderCancel\"\n label=\"Cancel\"\n variant=\"outline\"\n />\n <Button\n id=\"conReminderSend\"\n isLoading={isConReminderButtonLoader}\n label=\"Send reminder\"\n onClick={handleSendReminderClicked}\n variant=\"solid\"\n />\n </div>\n </div>\n </>\n );\n };\n\n return (\n <>\n <Link isInline onLinkClick={() => handleCONReminder()}>\n {firstLetterCapitalised\n ? capitalizeFirstLetter(CON_REMINDER_MODAL_LINK_TEXT)\n : CON_REMINDER_MODAL_LINK_TEXT}\n </Link>\n {showModal && (\n <Portal>\n <Modal\n className=\"con-reminder-modal\"\n id=\"conReminderModal\"\n handleCloseModal={handleCancelButtonClicked}\n showButtons={!showDone}\n showCloseIcon={false}\n showModal={showModal}\n >\n {showDone ? renderConfirmationBlock() : renderEnterEmailField()}\n </Modal>\n </Portal>\n )}\n </>\n );\n}\n","import React, { useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\n// Layouts\nimport MainLayout from \"layouts/Main\";\n\n// Components\nimport { Button, InputField, Notification } from \"@octopus-investments/deep-sea-components\";\nimport CONReminder from \"components/Modals/CONReminder/CONReminder\";\n\n// Actions\nimport { setBackButtonTarget, setCON, setContent } from \"store/slices/applicationSlice\";\nimport { setCONRegisterButtonLoader } from \"store/slices/loadersSlice\";\nimport { signUp } from \"store/slices/accountSlice\";\n\n// Tools\nimport { getStatusForAmpli } from \"utils/helpers\";\n\n// Tracking\nimport { ampli } from \"ampli\";\n\n// Styles\nimport \"./ConfirmCONPage.scss\";\n\nexport default function ConfirmCONPage() {\n const { conNumber: storedCON, email } = useSelector(({ application }) => application);\n const { isConRegisterButtonLoader } = useSelector(({ loaders }) => loaders);\n\n const [conNumber, setCONNumber] = useState(storedCON);\n const [showError, setShowError] = useState(false);\n\n // Redux\n const reduxDispatch = useDispatch();\n\n function handleCONChange(e) {\n const value = e.value.replace(/\\D/g, \"\");\n setCONNumber(value);\n setShowError(showError ? false : showError);\n }\n\n function handleCONKeyPress(e) {\n if (e.which < 48 || e.which > 57) e.preventDefault();\n if (e.which === 13 && conNumber !== \"\") handleRegisterButton();\n }\n\n function handleBackButton() {\n ampli.backButtonClicked({\n di_email_entered: email,\n location: \"di_confirm_account_number\",\n });\n\n reduxDispatch(setContent(\"loginOrRegister\"));\n }\n\n function handleRegisterButton() {\n if (isConRegisterButtonLoader) return;\n\n if (conNumber === \"\") {\n return setShowError(true);\n }\n\n reduxDispatch(setCONRegisterButtonLoader(true));\n\n const returnUrl = new URLSearchParams(window.location.search).get(\"returnUrl\");\n\n reduxDispatch(signUp({ conNumber, returnUrl })).then(result => {\n const conNumberWithPrefix = `CON${conNumber}`;\n const { isTemporaryLocked, status, success } = result.payload;\n\n ampli.userVerificationIntended({\n di_con_entered: conNumberWithPrefix,\n di_email_entered: email,\n di_status: getStatusForAmpli({ isTemporaryLocked, status }),\n });\n\n if (success) {\n ampli.registrationCompleted({\n email: email,\n user_id: conNumber,\n });\n reduxDispatch(setCON(conNumber));\n reduxDispatch(setBackButtonTarget(\"confirmAccount\"));\n reduxDispatch(setContent(\"checkMail\"));\n } else {\n setShowError(true);\n return reduxDispatch(setCONRegisterButtonLoader(false));\n }\n });\n }\n\n return (\n <MainLayout>\n <div className=\"confirm-con-content\">\n <div className=\"confirm-con-form\">\n <h1 className=\"coheadline navyBlue ta-l\">Confirm your account number</h1>\n\n <div className=\"enter-your-con-block ta-l\">\n {showError && (\n <div className=\"error-message\">\n <Notification\n animation=\"none\"\n message={\n <>\n Sorry, we can't find your account. Please double check your details, or{\" \"}\n <CONReminder fromError={showError} />.\n </>\n }\n showNotification\n status=\"error\"\n type=\"inline\"\n />\n </div>\n )}\n <InputField\n className=\"client-email\"\n defaultValue={email}\n disabled\n id=\"confirmCONPageEmailInput\"\n label=\"Email address\"\n name=\"email\"\n />\n <InputField\n autoComplete=\"off\"\n autoFocus\n value={conNumber}\n disabled={isConRegisterButtonLoader}\n id=\"confirmCONPageCONInput\"\n label=\"Account number\"\n name=\"con\"\n onChange={handleCONChange}\n onKeyPress={handleCONKeyPress}\n placeholder=\"_ _ _ _ _ _\"\n required\n />\n <div className=\"information-block\">\n <p>\n You can find your account number in emails or letters from us. Can’t find it?{\" \"}\n <CONReminder firstLetterCapitalised={true} />.\n </p>\n </div>\n <div className=\"buttons-block\">\n <Button onClick={handleBackButton} label=\"Back\" variant=\"outline\" />\n <Button\n isLoading={isConRegisterButtonLoader}\n onClick={handleRegisterButton}\n label=\"Register\"\n variant=\"solid\"\n />\n </div>\n </div>\n </div>\n </div>\n </MainLayout>\n );\n}\n","import React from \"react\";\n\n// Layouts\nimport MainLayout from \"layouts/Main\";\n\n// Components\nimport { Button } from \"@octopus-investments/deep-sea-components\";\n\n// Styles\nimport \"./ContinueToAccountOrLogoutPage.scss\";\n\nexport default function ContinueToAccountOrLogout() {\n const handleContinueToAccountButton = () => {\n window.location.href = process.env.REACT_APP_WELCOME_BTN_URL;\n };\n\n return (\n <MainLayout>\n <div className=\"continue-to-account-content ta-l\">\n <h1 className=\"coheadline navyBlue\">Access our online services</h1>\n <p>Access valuations and documents anytime through our online portal.</p>\n <div className=\"buttons-block\">\n <form\n action=\"/Interaction/Logout\"\n encType=\"application/x-www-form-urlencoded\"\n method=\"post\"\n >\n <input\n name=\"logoutId\"\n type=\"hidden\"\n value={new URLSearchParams(window.location.search).get(\"logoutId\") || \"\"}\n />\n <Button label=\"Log out\" type=\"submit\" variant=\"outline\" />\n </form>\n <Button\n label=\"Continue to account\"\n onClick={handleContinueToAccountButton}\n type=\"submit\"\n variant=\"solid\"\n />\n </div>\n </div>\n </MainLayout>\n );\n}\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\n// Assets\nimport logo from \"assets/images/logo.svg\";\nimport bCorpBlackLogo from \"assets/images/b-corp-logo-black.png\";\n\n// Components\nimport ServerErrorModal from \"components/Modals/ServerError/ServerError\";\nimport Portal from \"components/Portal/Portal\";\nimport FooterText from \"components/FooterText/FooterText\";\n\n// Tools\nimport useWindowSize from \"hooks/useWindowSize\";\n\nexport default function FullPageMessage(props) {\n const { isDesktop } = useWindowSize();\n const fullPageMessageClasses = classNames(\"container\", props.smaller && \"smaller\");\n return (\n <div className=\"layout layout-full-page-message\">\n <Portal>\n <ServerErrorModal />\n </Portal>\n {!isDesktop && <img src={bCorpBlackLogo} className=\"b-corp-logo\" alt=\"B-Corp logo\" />}\n <div className={fullPageMessageClasses}>\n <img src={logo} className=\"logo\" alt=\"OI logo\" />\n {props.children}\n </div>\n {props.showFooterText && <FooterText />}\n </div>\n );\n}\n\nFullPageMessage.propTypes = {\n showFooterText: PropTypes.bool,\n children: PropTypes.node.isRequired,\n smaller: PropTypes.bool,\n};\n","// Layouts\nimport FullPageMessage from \"layouts/FullPageMessage\";\n\n// Components\nimport { Loader } from \"@octopus-investments/deep-sea-components\";\n\n// Styles\nimport \"./LoadingPage.scss\";\n\nexport default function Loading({ title, content }) {\n return (\n <FullPageMessage smaller>\n <div className=\"loading-content\">\n {title && <h1 className=\"coheadline navyBlue\">{title}</h1>}\n <p className=\"loader-and-copy\">\n <Loader className=\"loader-and-copy-content\" size=\"lg\" />\n <div className=\"loader-and-copy-content\">{content}</div>\n </p>\n </div>\n </FullPageMessage>\n );\n}\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\n// Components\nimport { InputField, SupportingMessage } from \"@octopus-investments/deep-sea-components\";\n\n// Styles\nimport \"./PasswordField.scss\";\n\nexport default function PasswordField({ className, errorMsg, showError, value, ...rest }) {\n const passwordFieldClasses = classNames(\n \"input-field\",\n \"password-field\",\n showError && \"has-error\",\n className,\n );\n\n return (\n <div className={passwordFieldClasses}>\n <InputField\n autoComplete=\"off\"\n defaultValue={value || \"\"}\n iconPosition=\"right\"\n placeholder=\"Enter your password\"\n required\n type=\"password\"\n {...rest}\n />\n {showError && <SupportingMessage status=\"error\" message={errorMsg} />}\n </div>\n );\n}\n\nPasswordField.propTypes = {\n className: PropTypes.string,\n errorMsg: PropTypes.string,\n showError: PropTypes.bool,\n value: PropTypes.string,\n};\n","import React, { useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\n// Layouts\nimport MainLayout from \"layouts/Main\";\n\n// Components\nimport {\n Button,\n InputField,\n Link,\n SupportingMessage,\n} from \"@octopus-investments/deep-sea-components\";\nimport PasswordField from \"components/Inputs/PasswordField/PasswordField\";\n\n// Actions\nimport { checkEmail } from \"store/slices/accountSlice\";\nimport {\n setBackButtonTarget,\n setContent,\n setEmailAddress,\n setTwoFactorEnabled,\n} from \"store/slices/applicationSlice\";\nimport { setLoginOrRegisterButtonLoader } from \"store/slices/loadersSlice\";\n\n// Tools\nimport useWindowSize from \"hooks/useWindowSize\";\nimport { VALIDATION_ERRORS } from \"utils/constants\";\nimport { focusLastInputFieldCharacter, validateEmail } from \"utils/helpers\";\n\n// Tracking\nimport { ampli } from \"ampli\";\n\n// Styles\nimport \"./LoginOrRegisterPage.scss\";\n\nexport default function LoginOrRegisterPage() {\n const { isLoginOrRegisterButtonLoader } = useSelector(({ loaders }) => loaders);\n const { email: emailAddress, isTwoFactorEnabled } = useSelector(({ application }) => application);\n\n const [email, setEmail] = useState(emailAddress);\n const [showError, setShowError] = useState(false);\n\n const { isMobile } = useWindowSize();\n\n // Redux\n const reduxDispatch = useDispatch();\n\n function handleEmailChange(e) {\n setEmail(e.value);\n if (showError) setShowError(false);\n }\n\n function handleNextButton() {\n const isEmailValid = Boolean(validateEmail(email));\n setShowError(!isEmailValid);\n\n focusLastInputFieldCharacter(\"enterYourEmailInput\");\n\n if (isEmailValid) {\n onSubmit();\n } else {\n ampli.loginRegistrationIntended({\n di_email_criteria_met: false,\n di_email_entered: email,\n is_user_registered: false,\n mfa_status: isTwoFactorEnabled,\n });\n }\n }\n\n function onSubmit() {\n reduxDispatch(setLoginOrRegisterButtonLoader(true));\n\n reduxDispatch(setEmailAddress(email));\n\n reduxDispatch(checkEmail()).then(result => {\n const {\n confirmationLinkExpired,\n success,\n exists,\n registered = false,\n twoFactorEnabled = false,\n } = result.payload;\n\n ampli.loginRegistrationIntended({\n di_email_criteria_met: true,\n di_email_entered: email,\n is_user_registered: registered,\n mfa_status: twoFactorEnabled,\n });\n\n if (success === false) return reduxDispatch(setLoginOrRegisterButtonLoader(false));\n\n let content = \"\";\n\n if (registered) content = \"login\";\n else if (exists === false) content = \"confirmAccount\";\n else if (exists === true && confirmationLinkExpired === true) content = \"tokenExpired\";\n else content = \"checkMail\";\n\n if (twoFactorEnabled) {\n reduxDispatch(setTwoFactorEnabled(true));\n }\n\n reduxDispatch(setBackButtonTarget(\"loginOrRegister\"));\n reduxDispatch(setContent(content));\n });\n }\n\n function renderAdminAccountRequestLink() {\n function onAdminRequestClicked() {\n ampli.adminRegistrationIntended();\n return true;\n }\n\n return (\n <>\n Need an administrator account? Request one{\" \"}\n <Link\n className=\"fw-bold\"\n href={process.env.REACT_APP_ADMIN_LOGN_URL}\n onPointerDown={onAdminRequestClicked}\n target=\"_blank\"\n >\n here\n </Link>\n .\n </>\n );\n }\n\n return (\n <MainLayout>\n <div className=\"login-or-register-content\">\n <div className=\"login-or-register-form\">\n <h1 className=\"coheadline navyBlue\">Log in or register to manage your account</h1>\n\n <div className=\"enter-your-email-block ta-l\">\n <InputField\n autoComplete=\"on\"\n autocompletetype=\"email\"\n autoFocus\n defaultValue={email}\n error={showError}\n id=\"enterYourEmailInput\"\n label=\"Email address\"\n name=\"email\"\n onChange={handleEmailChange}\n onKeyPress={e => {\n if (e.which === 13 && !isLoginOrRegisterButtonLoader) handleNextButton();\n }}\n placeholder=\"Enter your email address\"\n required\n showError={showError}\n type=\"email\"\n />\n {showError && (\n <SupportingMessage\n status=\"error\"\n message={VALIDATION_ERRORS[email === \"\" ? \"emptyField\" : \"wrongPattern\"]}\n />\n )}\n\n {/* We hide this field from customer but it needed for autofill functionality. */}\n <PasswordField />\n {!isMobile && (\n <div className=\"admin-account-request-link-content\">\n {renderAdminAccountRequestLink()}\n </div>\n )}\n <Button\n customWidth=\"140px\"\n disabled={isLoginOrRegisterButtonLoader}\n isLoading={isLoginOrRegisterButtonLoader}\n onClick={handleNextButton}\n label=\"Next\"\n variant=\"solid\"\n />\n </div>\n </div>\n {isMobile && (\n <div className=\"admin-account-request-link-content\">\n {renderAdminAccountRequestLink()}\n </div>\n )}\n </div>\n </MainLayout>\n );\n}\n","import React, { useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\n// Layouts\nimport MainLayout from \"layouts/Main\";\n\n// Components\nimport { Button, InputField, Link, Notification } from \"@octopus-investments/deep-sea-components\";\nimport PasswordField from \"components/Inputs/PasswordField/PasswordField\";\n\n// Actions\nimport { sendNewEmail, signIn } from \"store/slices/accountSlice\";\nimport {\n setBackButtonTarget,\n setContent,\n setEmailNotSent,\n setResetPassword,\n setPasswordForTwoFactor,\n} from \"store/slices/applicationSlice\";\nimport { setLoginButtonLoader, setResendButtonLoader } from \"store/slices/loadersSlice\";\n\n// Tools\nimport { identifyUserInTrackingSystem, getStatusForAmpli } from \"utils/helpers\";\n\n// Tracking\nimport { ampli } from \"ampli\";\n\n// Styles\nimport \"./LoginPage.scss\";\n\nexport default function LoginPage() {\n const { isLoginButtonLoader } = useSelector(({ loaders }) => loaders);\n const { email } = useSelector(({ application }) => application);\n const { isTwoFactorEnabled } = useSelector(({ application }) => application);\n\n const [showError, setShowError] = useState(false);\n const [password, setPassword] = useState(\"\");\n\n // Redux\n const reduxDispatch = useDispatch();\n\n function handlePasswordChange(e) {\n setPassword(e.value);\n }\n\n function handlePasswordKeyPress(e) {\n if (e.which === 13) handleLoginButton();\n }\n\n function handleBackButton() {\n ampli.backButtonClicked({\n di_email_entered: email,\n location: \"di_login_page\",\n });\n\n reduxDispatch(setContent(\"loginOrRegister\"));\n }\n\n function handleLoginButton() {\n if (isLoginButtonLoader) return;\n\n reduxDispatch(setLoginButtonLoader(true));\n\n reduxDispatch(signIn({ email, password })).then(result => {\n const { isTemporaryLocked, status, success } = result.payload;\n\n if (isTwoFactorEnabled) {\n ampli.loginNextClicked({\n di_email_entered: email,\n di_status: getStatusForAmpli({ isTemporaryLocked, status }),\n mfa_status: isTwoFactorEnabled,\n });\n } else {\n ampli.loginIntended({\n di_email_entered: email,\n di_status: getStatusForAmpli({ isTemporaryLocked, status }),\n mfa_status: isTwoFactorEnabled,\n });\n }\n\n if (success) {\n if (isTwoFactorEnabled) {\n reduxDispatch(setPasswordForTwoFactor(password));\n reduxDispatch(setContent(\"twoFactorLogin\"));\n return reduxDispatch(setLoginButtonLoader(false));\n } else {\n identifyUserInTrackingSystem({ source: \"login-page\" });\n const urlParams = new URLSearchParams(window.location.search);\n const isRedirect = urlParams.has(\"returnUrl\");\n isRedirect\n ? (window.location.href = urlParams.get(\"returnUrl\"))\n : window.location.href = process.env.REACT_APP_WELCOME_BTN_URL;\n }\n } else {\n setShowError(true);\n return reduxDispatch(setLoginButtonLoader(false));\n }\n });\n }\n\n const handleClickToResetLink = () => {\n handleForgotPasswordButton();\n };\n\n function handleForgotPasswordButton() {\n if (isLoginButtonLoader) return;\n\n reduxDispatch(setResetPassword(true));\n reduxDispatch(setResendButtonLoader(true));\n reduxDispatch(setContent(\"checkMail\"));\n reduxDispatch(setBackButtonTarget(\"login\"));\n\n const returnUrl = new URLSearchParams(window.location.search).get(\"returnUrl\");\n\n reduxDispatch(sendNewEmail({ returnUrl })).then(result => {\n const { success } = result.payload;\n\n if (success) {\n ampli.forgotPasswordClicked({\n di_email_entered: email,\n location: \"di_login_page\",\n });\n } else {\n ampli.forgotPasswordClicked({\n di_email_entered: email,\n location: \"di_login_page_error\",\n });\n\n reduxDispatch(setEmailNotSent(true));\n return reduxDispatch(setResendButtonLoader(false));\n }\n });\n }\n\n return (\n <MainLayout>\n <div className=\"login-content\">\n <div className=\"login-form\">\n <h1 className=\"coheadline navyBlue ta-l\">Enter your password</h1>\n\n <div className=\"enter-your-password-block ta-l\">\n {showError && (\n <div className=\"error-message\">\n <Notification\n animation=\"none\"\n message={\n <>\n Sorry, we can't find your account. Please double check your details, or{\" \"}\n <Link isInline onLinkClick={handleClickToResetLink}>\n reset your password here\n </Link>\n .\n </>\n }\n showNotification\n status=\"error\"\n type=\"inline\"\n />\n </div>\n )}\n <InputField\n className=\"client-email\"\n defaultValue={email}\n disabled\n id=\"loginPageEmailInput\"\n label=\"Email address\"\n name=\"email\"\n />\n <PasswordField\n autoFocus\n className=\"client-password\"\n disabled={isLoginButtonLoader}\n id=\"loginPagePasswordInput\"\n label=\"Password\"\n name=\"password\"\n onChange={handlePasswordChange}\n onKeyPress={handlePasswordKeyPress}\n value={password}\n />\n <div className=\"forgot-password-block\">\n <Link onClick={handleForgotPasswordButton}>Forgot password?</Link>\n </div>\n <div className=\"buttons-block\">\n <Button label=\"Back\" onClick={handleBackButton} variant=\"outline\" />\n <Button\n isLoading={isLoginButtonLoader}\n label={isTwoFactorEnabled ? \"Next\" : \"Login\"}\n onClick={handleLoginButton}\n variant=\"solid\"\n />\n </div>\n </div>\n </div>\n </div>\n </MainLayout>\n );\n}\n","import React, { useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\n// Layouts\nimport MainLayout from \"layouts/Main\";\n\n// Components\nimport {\n Button,\n InputField,\n Link,\n SupportingMessage,\n TextLabel,\n} from \"@octopus-investments/deep-sea-components\";\nimport PasswordField from \"components/Inputs/PasswordField/PasswordField\";\n\n// Actions\nimport { setPassword, signInTwoFactor } from \"store/slices/accountSlice\";\nimport { setContent, setRedirectUrl } from \"store/slices/applicationSlice\";\nimport { setTwoFactorLoginButtonLoader } from \"store/slices/loadersSlice\";\n\n// Tools\nimport { identifyUserInTrackingSystem, getStatusForAmpli } from \"utils/helpers\";\nimport { MFA_AUTH_CODE_TOOLTIP, VALIDATION_ERRORS } from \"utils/constants\";\n\n// Tracking\nimport { ampli } from \"ampli\";\n\n// Styles\nimport \"./LoginPage.scss\";\n\nexport default function TwoFactorLoginPage() {\n const { isTwoFactorLoginButtonLoader } = useSelector(({ loaders }) => loaders);\n const { email, password, isTwoFactorEnabled, redirectUrl } = useSelector(\n ({ application }) => application,\n );\n\n const [verificationCode, setVerificationCode] = useState(\"\");\n const [showError, setShowError] = useState(false);\n\n // Redux\n const reduxDispatch = useDispatch();\n\n function handleCodeChange(e) {\n setVerificationCode(e.value);\n }\n\n function handleVerificationCodeKeyPress(e) {\n if (e.which === 13) handleLoginButton();\n }\n const renderHelpLink = () => {\n const handleOpenBeaconAskSection = () => {\n window.Beacon(\"navigate\", \"/ask/\");\n window.Beacon(\"open\");\n\n ampli.embeddedBeaconClicked({\n external_link_clicked: \"beacon_mfa_contact\",\n location: \"di_login_page\",\n });\n };\n\n return (\n <Link isInline stopPropagation onLinkClick={handleOpenBeaconAskSection}>\n Get in touch\n </Link>\n );\n };\n\n function handleBackButton() {\n ampli.backButtonClicked({\n di_email_entered: email,\n location: \"di_login_page\",\n });\n\n reduxDispatch(setContent(\"login\"));\n }\n\n const handleAuthCodeTooltip = () => {\n ampli.tooltipViewed({\n location: \"di_login_page\",\n tooltip_type: \"authentication_code\",\n });\n };\n\n function handleLoginButton() {\n if (isTwoFactorLoginButtonLoader) return;\n\n reduxDispatch(setTwoFactorLoginButtonLoader(true));\n\n reduxDispatch(signInTwoFactor({ email, password, verificationCode })).then(result => {\n const { isTemporaryLocked, status, success } = result.payload;\n\n ampli.loginIntended({\n di_email_entered: email,\n di_status: getStatusForAmpli({ isTemporaryLocked, status }),\n mfa_status: isTwoFactorEnabled,\n });\n\n if (success) {\n identifyUserInTrackingSystem({ source: \"two-factor-login-page\" });\n\n ampli.loginCompleted({\n di_status: getStatusForAmpli({ isTemporaryLocked, status }),\n email,\n mfa_status: isTwoFactorEnabled,\n });\n\n if (redirectUrl) {\n window.location.href = redirectUrl;\n setRedirectUrl(\"\");\n return;\n }\n\n const urlParams = new URLSearchParams(window.location.search);\n const isRedirect = urlParams.has(\"returnUrl\");\n const returnUrl = isRedirect\n ? urlParams.get(\"returnUrl\")\n : process.env.REACT_APP_WELCOME_BTN_URL;\n window.location.href = returnUrl;\n } else {\n setShowError(true);\n return reduxDispatch(setTwoFactorLoginButtonLoader(false));\n }\n });\n }\n\n return (\n <MainLayout>\n <div className=\"login-content\">\n <div className=\"login-form\">\n <h1 className=\"coheadline navyBlue ta-l\">Enter your 6 digit verification code</h1>\n\n <div className=\"enter-your-password-block ta-l\">\n <InputField\n className=\"client-email\"\n defaultValue={email}\n disabled\n id=\"loginPageEmailInput\"\n label=\"Email address\"\n name=\"email\"\n />\n <PasswordField\n className=\"client-password\"\n defaultValue={password}\n disabled\n id=\"loginPagePasswordInput\"\n label=\"Password\"\n />\n <TextLabel\n label=\"Verification code\"\n text=\" \"\n tooltipProps={{\n content: MFA_AUTH_CODE_TOOLTIP,\n onTooltipVisible: () => handleAuthCodeTooltip(),\n position: \"top\",\n }}\n />\n <InputField\n autoFocus\n className=\"client-code\"\n disabled={isTwoFactorLoginButtonLoader}\n id=\"loginPageCodeInput\"\n name=\"code\"\n onChange={handleCodeChange}\n onKeyPress={handleVerificationCodeKeyPress}\n value={verificationCode}\n placeholder=\"e.g. 123456\"\n />\n {showError && (\n <SupportingMessage status=\"error\" message={VALIDATION_ERRORS[\"wrongCode\"]} />\n )}\n\n <div className=\"information-block\">\n <p>Need help? {renderHelpLink()}</p>\n </div>\n <div className=\"buttons-block\">\n <Button label=\"Back\" onClick={handleBackButton} variant=\"outline\" />\n <Button\n isLoading={isTwoFactorLoginButtonLoader}\n label=\"Login\"\n onClick={handleLoginButton}\n variant=\"solid\"\n />\n </div>\n </div>\n </div>\n </div>\n </MainLayout>\n );\n}\n","import React, { useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\n// Layouts\nimport MainLayout from \"layouts/Main\";\n\n// Components\nimport { Button, InputField } from \"@octopus-investments/deep-sea-components\";\n\n// Actions\nimport { setContent } from \"store/slices/applicationSlice\";\nimport { setResendButtonLoader } from \"store/slices/loadersSlice\";\nimport { sendNewEmail } from \"store/slices/accountSlice\";\n\n// Tracking\nimport { ampli } from \"ampli\";\n\n// Styles\nimport \"./TokenExpiredPage.scss\";\n\nexport default function TokenExpiredPage() {\n const [status, setStatus] = useState(\"This link has expired\");\n\n const { email } = useSelector(({ application }) => application);\n const { isResendButtonLoader } = useSelector(({ loaders }) => loaders);\n\n // Redux\n const reduxDispatch = useDispatch();\n\n function handleResendButton() {\n if (isResendButtonLoader) return;\n\n reduxDispatch(setResendButtonLoader(true));\n\n reduxDispatch(sendNewEmail({ returnUrl: false })).then(result => {\n const { success } = result.payload;\n\n ampli.linkExpiredClicked({\n email,\n });\n\n if (success) {\n reduxDispatch(setContent(\"checkMail\"));\n } else {\n setStatus(\"Error. Please try again\");\n return reduxDispatch(setResendButtonLoader(false));\n }\n });\n }\n\n return (\n <MainLayout>\n <div className=\"token-expire-content\">\n <h1 className=\"coheadline navyBlue\">{status}</h1>\n\n <div className=\"information-block\">\n Your verification link has expired. Click the button below and we’ll send you a new one.\n </div>\n\n <div className=\"send-new-link-block\">\n <InputField\n className=\"client-email\"\n defaultValue={email}\n disabled\n id=\"tokenExpiredPageEmailInput\"\n label=\"Email address\"\n name=\"email\"\n />\n <Button\n customWidth=\"183px\"\n isLoading={isResendButtonLoader}\n label=\"Send new link\"\n onClick={handleResendButton}\n variant=\"solid\"\n />\n </div>\n </div>\n </MainLayout>\n );\n}\n","import React, { useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\n// Pages\nimport CheckEmailMessagePage from \"pages/LoginOrRegisterPages/CheckEmailMessagePage/CheckEmailMessagePage\";\nimport ConfirmCONPage from \"pages/LoginOrRegisterPages/ConfirmCONPage/ConfirmCONPage\";\nimport ContinueToAccountOrLogoutPage from \"pages/ContinueToAccountOrLogoutPage/ContinueToAccountOrLogoutPage\";\nimport LoadingPage from \"pages/LoadingPage/LoadingPage\";\nimport LoginOrRegisterPage from \"pages/LoginOrRegisterPages/LoginOrRegisterPage/LoginOrRegisterPage\";\nimport LoginPage from \"pages/LoginOrRegisterPages/LoginPage/LoginPage\";\nimport TwoFactorLoginPage from \"pages/LoginOrRegisterPages/LoginPage/TwoFactorLoginPage\";\nimport TokenExpiredPage from \"pages/RegistrationPages/TokenExpiredPage/TokenExpiredPage\";\n\n// Actions\nimport { isSignedIn } from \"store/slices/accountSlice\";\nimport { setContent } from \"store/slices/applicationSlice\";\nimport { setLoader } from \"store/slices/loadersSlice\";\n\nexport default function LoginOrRegisterPages() {\n const { content } = useSelector(({ application }) => application);\n const { isLoader } = useSelector(({ loaders }) => loaders);\n\n // Redux\n const reduxDispatch = useDispatch();\n\n // Constants\n const PAGES = Object.freeze({\n checkMail: <CheckEmailMessagePage />,\n continueToAccountOrLogoutPage: <ContinueToAccountOrLogoutPage />,\n confirmAccount: <ConfirmCONPage />,\n login: <LoginPage />,\n twoFactorLogin: <TwoFactorLoginPage />,\n loginOrRegister: <LoginOrRegisterPage />,\n tokenExpired: <TokenExpiredPage />,\n });\n\n useEffect(() => {\n reduxDispatch(isSignedIn()).then(result => {\n const { signedIn } = result.payload;\n const redirectToPage = signedIn ? \"continueToAccountOrLogoutPage\" : \"loginOrRegister\";\n\n reduxDispatch(setContent(redirectToPage));\n reduxDispatch(setLoader(false));\n });\n }, []);\n\n return isLoader ? (\n <LoadingPage title=\"Welcome\" content=\"Checking your details\" />\n ) : (\n PAGES[content]\n );\n}\n","import { useEffect, useRef } from \"react\";\nimport Http from \"api/Http\";\nimport { useDispatch } from \"react-redux\";\nimport { setRedirectUrl } from \"store/slices/applicationSlice\";\nimport { useHistory } from \"react-router-dom\";\n// Layouts\nimport FullPageMessage from \"layouts/FullPageMessage\";\n\n// Styles\nimport \"./LoggingOutPage.scss\";\nexport default function LoggingOutPage(props) {\n const { isTwoFactorRegisterPage } = props;\n const urlParams = new URLSearchParams(window.location.search);\n const iframeRef = useRef(null);\n const iframeUri = urlParams.get(\"iframeUri\") || \"\";\n const logoutId = urlParams.get(\"logoutId\") || \"\";\n const redirectUri = urlParams.get(\"redirectUri\") || \"/\";\n const logoutUri = urlParams.get(\"logoutUrl\") || \"\";\n\n const reduxDispatch = useDispatch();\n const history = useHistory();\n\n const isValidURL = string => {\n try {\n let base = \"http://relativebase\";\n if (!base.endsWith(\"/\")) {\n base += \"/\";\n }\n let url = new URL(string, base);\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n } catch {\n return false;\n }\n };\n\n const performLogoutAndRedirect = async () => {\n try {\n if (isTwoFactorRegisterPage && isValidURL(logoutUri)) {\n await fetch(logoutUri, { method: \"GET\", credentials: \"include\" });\n }\n } catch (error) {\n console.error(\"Fetch logout failed:\", error);\n }\n\n try {\n const data = logoutId ? { logoutId } : undefined;\n await Http.post({\n url: \"Interaction/Logout\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n data,\n excludeApiPrefix: true,\n });\n } catch (error) {\n console.error(\"Logout failed\", error);\n }\n\n if (isTwoFactorRegisterPage && isValidURL(redirectUri)) {\n reduxDispatch(setRedirectUrl(redirectUri));\n }\n redirect();\n };\n\n const redirect = () => {\n if (isTwoFactorRegisterPage) {\n history.push(\"/\");\n return;\n }\n\n if (isValidURL(redirectUri)) {\n window.location.href = redirectUri;\n return;\n }\n window.location.href = \"/\";\n };\n\n useEffect(() => {\n if (iframeUri === \"\") {\n performLogoutAndRedirect();\n } else {\n const iframe = iframeRef.current;\n const handleLoad = () => performLogoutAndRedirect();\n iframe.addEventListener(\"load\", handleLoad);\n return () => iframe.removeEventListener(\"load\", handleLoad);\n }\n }, [iframeUri]);\n\n if (iframeUri === \"\") return null;\n\n return (\n <FullPageMessage>\n <div className=\"logging-out-content\">\n <p className=\"navyBlue\">Logging out...</p>\n <iframe\n ref={iframeRef}\n src={iframeUri}\n title=\"logout\"\n style={{\n visibility: \"invisible\",\n height: 0,\n width: 0,\n }}\n />\n </div>\n </FullPageMessage>\n );\n}\n","const SvgActivity = (props: { [x: string]: string | number | object }) => {\n return (\n <svg\n width={24}\n height={24}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M15 22C14.6 22 14.2 21.7 14.1 21.3L9 6.2L6.9 12.4C6.8 12.7 6.4 13 6 13H2C1.4 13 1 12.6 1 12C1 11.4 1.4 11 2 11H5.3L8.1 2.7C8.2 2.3 8.6 2 9 2C9.4 2 9.8 2.3 9.9 2.7L15 17.8L17.1 11.6C17.2 11.2 17.6 10.9 18 10.9H22C22.6 10.9 23 11.3 23 11.9C23 12.5 22.6 12.9 22 12.9H18.7L15.9 21.2C15.8 21.7 15.4 22 15 22Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default SvgActivity;\n","const SvgClipboard = (props: { [x: string]: string | number | object }) => {\n return (\n <svg\n width={24}\n height={24}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M16 4H18C18.5304 4 19.0391 4.21071 19.4142 4.58579C19.7893 4.96086 20 5.46957 20 6V20C20 20.5304 19.7893 21.0391 19.4142 21.4142C19.0391 21.7893 18.5304 22 18 22H6C5.46957 22 4.96086 21.7893 4.58579 21.4142C4.21071 21.0391 4 20.5304 4 20V6C4 5.46957 4.21071 4.96086 4.58579 4.58579C4.96086 4.21071 5.46957 4 6 4H8\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M15 2H9C8.44772 2 8 2.44772 8 3V5C8 5.55228 8.44772 6 9 6H15C15.5523 6 16 5.55228 16 5V3C16 2.44772 15.5523 2 15 2Z\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n\nexport default SvgClipboard;\n","import React from \"react\";\nimport classNames from \"classnames\";\n\n// Components\nimport { Check, Close } from \"@octopus-investments/deep-sea-components/Icons\";\n\n// Styles\nimport \"./PasswordChecks.scss\";\n\nexport default function PasswordChecks({ password }) {\n function PasswordCheckRow({ passed, text }) {\n const passwordCheckClasses = classNames(\"tick-icon\", passed ? \"tick-icon-on\" : \"tick-icon-off\");\n return (\n <li>\n <span className={passwordCheckClasses}>{passed ? <Check /> : <Close />}</span>\n {text}\n </li>\n );\n }\n\n return (\n <div className=\"password-checks-block\">\n <span>Your password must contain:</span>\n <ul>\n <PasswordCheckRow passed={password.length >= 14} text=\"14 characters or more\" />\n <PasswordCheckRow passed={password.match(/[a-z]/)} text=\"At least one lower case letter\" />\n <PasswordCheckRow passed={password.match(/[A-Z]/)} text=\"At least one upper case letter\" />\n <PasswordCheckRow passed={password.match(/\\d/)} text=\"At least one number\" />\n </ul>\n </div>\n );\n}\n","import React, { useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\n// Layouts\nimport MainLayout from \"layouts/Main\";\n\n// Components\nimport { Button, InputField } from \"@octopus-investments/deep-sea-components\";\nimport PasswordField from \"components/Inputs/PasswordField/PasswordField\";\nimport PasswordChecks from \"./PasswordChecks/PasswordChecks\";\n\n// Actions\nimport { setContent } from \"store/slices/applicationSlice\";\nimport { setCreatePasswordButtonLoader } from \"store/slices/loadersSlice\";\nimport { setPassword } from \"store/slices/accountSlice\";\n\n// Tools\nimport { getStatusForAmpli, identifyUserInTrackingSystem, validatePassword } from \"utils/helpers\";\nimport { VALIDATION_ERRORS } from \"utils/constants\";\n\n// Tracking\nimport { ampli } from \"ampli\";\n\n// Styles\nimport \"./CreatePasswordPage.scss\";\n\nexport default function CreatePasswordPage() {\n const { email, isResetPassword } = useSelector(({ application }) => application);\n const { isCreatePasswordButtonLoader } = useSelector(({ loaders }) => loaders);\n\n // Redux\n const reduxDispatch = useDispatch();\n\n // States\n const [showError, setShowError] = useState(false);\n const [errorMsg, setErrorMsg] = useState(\"\");\n const [submitted, setSubmitted] = useState(false);\n\n const [state, setState] = useState({\n password: \"\",\n confirmedPassword: \"\",\n });\n\n const { password, confirmedPassword } = state;\n\n const isBtnDisabled = Boolean(!validatePassword(password)) || !confirmedPassword;\n\n function handlePasswordKeyPress(e) {\n if (e.which === 13 && !isBtnDisabled) handleSubmitButton();\n }\n\n function handleSubmitButton() {\n if (isCreatePasswordButtonLoader) return;\n\n const AMPLI_LOCATION = Object.freeze({\n 0: \"set_password_page\",\n 1: \"reset_password_page\",\n });\n\n reduxDispatch(setCreatePasswordButtonLoader(true));\n\n if (password !== confirmedPassword) {\n setShowError(true);\n setErrorMsg(VALIDATION_ERRORS[\"passwordMatch\"]);\n setSubmitted(true);\n\n ampli.passwordSetIntended({\n di_email_entered: email,\n di_passwords_match: false,\n di_status: \"input error\",\n location: AMPLI_LOCATION[+isResetPassword],\n });\n\n return reduxDispatch(setCreatePasswordButtonLoader(false));\n }\n\n setShowError(false);\n setSubmitted(true);\n\n reduxDispatch(setPassword(password)).then(result => {\n const { success, errors, status, isTemporaryLocked } = result.payload;\n ampli.passwordSetIntended({\n di_email_entered: email,\n di_passwords_match: true,\n di_status: getStatusForAmpli({ isTemporaryLocked, status }),\n location: AMPLI_LOCATION[+isResetPassword],\n });\n\n if (success) {\n identifyUserInTrackingSystem({ source: \"password-page\" });\n window.location.href = \"/logout\";\n } else if (errors && errors.token) {\n reduxDispatch(setContent(\"tokenExpired\"));\n } else if (errors && errors.password) {\n let errorMessage = errors[\"password\"].join(\". \");\n setShowError(true);\n setErrorMsg(errorMessage);\n return reduxDispatch(setCreatePasswordButtonLoader(false));\n } else {\n return reduxDispatch(setCreatePasswordButtonLoader(false));\n }\n });\n }\n\n function onPasswordsChanged(data) {\n if (isCreatePasswordButtonLoader) return;\n setShowError(false);\n const isError = submitted && data.password !== data.confirmedPassword;\n if (isError) {\n setShowError(true);\n setErrorMsg(VALIDATION_ERRORS[\"passwordMatch\"]);\n reduxDispatch(setCreatePasswordButtonLoader(false));\n }\n setState({ ...state, ...data });\n }\n\n return (\n <MainLayout>\n <div className=\"password-page-content\">\n <h1 className=\"coheadline navyBlue\">Create your password</h1>\n\n <div className=\"create-your-password-block\">\n <InputField\n className=\"client-email\"\n defaultValue={email}\n disabled\n label=\"Email address\"\n name=\"email\"\n />\n\n <PasswordField\n autoFocus\n className=\"client-password-set\"\n disabled={isCreatePasswordButtonLoader}\n label=\"Password\"\n name=\"password\"\n onChange={e => onPasswordsChanged({ confirmedPassword, password: e.value })}\n onKeyPress={handlePasswordKeyPress}\n tabIndex=\"1\"\n value={password}\n placeholder=\"Please create a memorable password\"\n />\n\n <PasswordChecks password={password} />\n\n <PasswordField\n className=\"client-password-confirm\"\n disabled={isCreatePasswordButtonLoader}\n errorMsg={errorMsg}\n label=\"Password\"\n name=\"password\"\n onChange={e => onPasswordsChanged({ confirmedPassword: e.value, password })}\n onKeyPress={handlePasswordKeyPress}\n placeholder=\"Confirm your password\"\n showError={showError}\n tabIndex=\"2\"\n value={confirmedPassword}\n />\n\n <Button\n customWidth=\"183px\"\n disabled={isBtnDisabled}\n isLoading={isCreatePasswordButtonLoader}\n label=\"Create password\"\n onClick={handleSubmitButton}\n tabIndex=\"3\"\n variant=\"solid\"\n />\n </div>\n </div>\n </MainLayout>\n );\n}\n","import React, { useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useParams } from \"react-router-dom\";\n\n// Pages\nimport CheckEmailMessagePage from \"pages/LoginOrRegisterPages/CheckEmailMessagePage/CheckEmailMessagePage\";\nimport ContinueToAccountOrLogoutPage from \"pages/ContinueToAccountOrLogoutPage/ContinueToAccountOrLogoutPage\";\nimport CreatePasswordPage from \"pages/RegistrationPages/CreatePasswordPage/CreatePasswordPage\";\nimport LoadingPage from \"pages/LoadingPage/LoadingPage\";\nimport TokenExpiredPage from \"pages/RegistrationPages/TokenExpiredPage/TokenExpiredPage\";\n\n// Actions\nimport { validateToken } from \"store/slices/accountSlice\";\nimport {\n setContent,\n setEmailAddress,\n setResetPassword,\n setToken,\n} from \"store/slices/applicationSlice\";\nimport { setLoader } from \"store/slices/loadersSlice\";\n\nexport default function RegistrationPages() {\n const { email, token } = useParams();\n const { content } = useSelector(({ application }) => application);\n const { isLoader } = useSelector(({ loaders }) => loaders);\n\n const isResetPassword = window.location.href.indexOf(\"/reset-password\") !== -1;\n\n // Redux\n const reduxDispatch = useDispatch();\n\n // Constants\n const PAGES = Object.freeze({\n checkMail: <CheckEmailMessagePage />,\n continueToAccountOrLogoutPage: <ContinueToAccountOrLogoutPage />,\n createPassword: <CreatePasswordPage />,\n tokenExpired: <TokenExpiredPage />,\n });\n\n useEffect(() => {\n reduxDispatch(setResetPassword(isResetPassword));\n reduxDispatch(setToken(token));\n reduxDispatch(setEmailAddress(email));\n\n reduxDispatch(validateToken()).then(result => {\n const { isValid } = result.payload;\n const redirectToPage = isValid ? \"createPassword\" : \"tokenExpired\";\n\n reduxDispatch(setContent(redirectToPage));\n reduxDispatch(setLoader(false));\n });\n }, []);\n\n return isLoader ? (\n <LoadingPage title=\"Welcome\" content=\"Validating your request\" />\n ) : (\n PAGES[content]\n );\n}\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\n\n// src/index.tsx\nimport React, { useRef, useEffect, useState } from \"react\";\n\n// src/third-party/qrcodegen/index.ts\n/**\n * @license QR Code generator library (TypeScript)\n * Copyright (c) Project Nayuki.\n * SPDX-License-Identifier: MIT\n */\nvar qrcodegen;\n((qrcodegen2) => {\n const _QrCode = class {\n constructor(version, errorCorrectionLevel, dataCodewords, msk) {\n this.version = version;\n this.errorCorrectionLevel = errorCorrectionLevel;\n this.modules = [];\n this.isFunction = [];\n if (version < _QrCode.MIN_VERSION || version > _QrCode.MAX_VERSION)\n throw new RangeError(\"Version value out of range\");\n if (msk < -1 || msk > 7)\n throw new RangeError(\"Mask value out of range\");\n this.size = version * 4 + 17;\n let row = [];\n for (let i = 0; i < this.size; i++)\n row.push(false);\n for (let i = 0; i < this.size; i++) {\n this.modules.push(row.slice());\n this.isFunction.push(row.slice());\n }\n this.drawFunctionPatterns();\n const allCodewords = this.addEccAndInterleave(dataCodewords);\n this.drawCodewords(allCodewords);\n if (msk == -1) {\n let minPenalty = 1e9;\n for (let i = 0; i < 8; i++) {\n this.applyMask(i);\n this.drawFormatBits(i);\n const penalty = this.getPenaltyScore();\n if (penalty < minPenalty) {\n msk = i;\n minPenalty = penalty;\n }\n this.applyMask(i);\n }\n }\n assert(0 <= msk && msk <= 7);\n this.mask = msk;\n this.applyMask(msk);\n this.drawFormatBits(msk);\n this.isFunction = [];\n }\n static encodeText(text, ecl) {\n const segs = qrcodegen2.QrSegment.makeSegments(text);\n return _QrCode.encodeSegments(segs, ecl);\n }\n static encodeBinary(data, ecl) {\n const seg = qrcodegen2.QrSegment.makeBytes(data);\n return _QrCode.encodeSegments([seg], ecl);\n }\n static encodeSegments(segs, ecl, minVersion = 1, maxVersion = 40, mask = -1, boostEcl = true) {\n if (!(_QrCode.MIN_VERSION <= minVersion && minVersion <= maxVersion && maxVersion <= _QrCode.MAX_VERSION) || mask < -1 || mask > 7)\n throw new RangeError(\"Invalid value\");\n let version;\n let dataUsedBits;\n for (version = minVersion; ; version++) {\n const dataCapacityBits2 = _QrCode.getNumDataCodewords(version, ecl) * 8;\n const usedBits = QrSegment.getTotalBits(segs, version);\n if (usedBits <= dataCapacityBits2) {\n dataUsedBits = usedBits;\n break;\n }\n if (version >= maxVersion)\n throw new RangeError(\"Data too long\");\n }\n for (const newEcl of [_QrCode.Ecc.MEDIUM, _QrCode.Ecc.QUARTILE, _QrCode.Ecc.HIGH]) {\n if (boostEcl && dataUsedBits <= _QrCode.getNumDataCodewords(version, newEcl) * 8)\n ecl = newEcl;\n }\n let bb = [];\n for (const seg of segs) {\n appendBits(seg.mode.modeBits, 4, bb);\n appendBits(seg.numChars, seg.mode.numCharCountBits(version), bb);\n for (const b of seg.getData())\n bb.push(b);\n }\n assert(bb.length == dataUsedBits);\n const dataCapacityBits = _QrCode.getNumDataCodewords(version, ecl) * 8;\n assert(bb.length <= dataCapacityBits);\n appendBits(0, Math.min(4, dataCapacityBits - bb.length), bb);\n appendBits(0, (8 - bb.length % 8) % 8, bb);\n assert(bb.length % 8 == 0);\n for (let padByte = 236; bb.length < dataCapacityBits; padByte ^= 236 ^ 17)\n appendBits(padByte, 8, bb);\n let dataCodewords = [];\n while (dataCodewords.length * 8 < bb.length)\n dataCodewords.push(0);\n bb.forEach((b, i) => dataCodewords[i >>> 3] |= b << 7 - (i & 7));\n return new _QrCode(version, ecl, dataCodewords, mask);\n }\n getModule(x, y) {\n return 0 <= x && x < this.size && 0 <= y && y < this.size && this.modules[y][x];\n }\n getModules() {\n return this.modules;\n }\n drawFunctionPatterns() {\n for (let i = 0; i < this.size; i++) {\n this.setFunctionModule(6, i, i % 2 == 0);\n this.setFunctionModule(i, 6, i % 2 == 0);\n }\n this.drawFinderPattern(3, 3);\n this.drawFinderPattern(this.size - 4, 3);\n this.drawFinderPattern(3, this.size - 4);\n const alignPatPos = this.getAlignmentPatternPositions();\n const numAlign = alignPatPos.length;\n for (let i = 0; i < numAlign; i++) {\n for (let j = 0; j < numAlign; j++) {\n if (!(i == 0 && j == 0 || i == 0 && j == numAlign - 1 || i == numAlign - 1 && j == 0))\n this.drawAlignmentPattern(alignPatPos[i], alignPatPos[j]);\n }\n }\n this.drawFormatBits(0);\n this.drawVersion();\n }\n drawFormatBits(mask) {\n const data = this.errorCorrectionLevel.formatBits << 3 | mask;\n let rem = data;\n for (let i = 0; i < 10; i++)\n rem = rem << 1 ^ (rem >>> 9) * 1335;\n const bits = (data << 10 | rem) ^ 21522;\n assert(bits >>> 15 == 0);\n for (let i = 0; i <= 5; i++)\n this.setFunctionModule(8, i, getBit(bits, i));\n this.setFunctionModule(8, 7, getBit(bits, 6));\n this.setFunctionModule(8, 8, getBit(bits, 7));\n this.setFunctionModule(7, 8, getBit(bits, 8));\n for (let i = 9; i < 15; i++)\n this.setFunctionModule(14 - i, 8, getBit(bits, i));\n for (let i = 0; i < 8; i++)\n this.setFunctionModule(this.size - 1 - i, 8, getBit(bits, i));\n for (let i = 8; i < 15; i++)\n this.setFunctionModule(8, this.size - 15 + i, getBit(bits, i));\n this.setFunctionModule(8, this.size - 8, true);\n }\n drawVersion() {\n if (this.version < 7)\n return;\n let rem = this.version;\n for (let i = 0; i < 12; i++)\n rem = rem << 1 ^ (rem >>> 11) * 7973;\n const bits = this.version << 12 | rem;\n assert(bits >>> 18 == 0);\n for (let i = 0; i < 18; i++) {\n const color = getBit(bits, i);\n const a = this.size - 11 + i % 3;\n const b = Math.floor(i / 3);\n this.setFunctionModule(a, b, color);\n this.setFunctionModule(b, a, color);\n }\n }\n drawFinderPattern(x, y) {\n for (let dy = -4; dy <= 4; dy++) {\n for (let dx = -4; dx <= 4; dx++) {\n const dist = Math.max(Math.abs(dx), Math.abs(dy));\n const xx = x + dx;\n const yy = y + dy;\n if (0 <= xx && xx < this.size && 0 <= yy && yy < this.size)\n this.setFunctionModule(xx, yy, dist != 2 && dist != 4);\n }\n }\n }\n drawAlignmentPattern(x, y) {\n for (let dy = -2; dy <= 2; dy++) {\n for (let dx = -2; dx <= 2; dx++)\n this.setFunctionModule(x + dx, y + dy, Math.max(Math.abs(dx), Math.abs(dy)) != 1);\n }\n }\n setFunctionModule(x, y, isDark) {\n this.modules[y][x] = isDark;\n this.isFunction[y][x] = true;\n }\n addEccAndInterleave(data) {\n const ver = this.version;\n const ecl = this.errorCorrectionLevel;\n if (data.length != _QrCode.getNumDataCodewords(ver, ecl))\n throw new RangeError(\"Invalid argument\");\n const numBlocks = _QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n const blockEccLen = _QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver];\n const rawCodewords = Math.floor(_QrCode.getNumRawDataModules(ver) / 8);\n const numShortBlocks = numBlocks - rawCodewords % numBlocks;\n const shortBlockLen = Math.floor(rawCodewords / numBlocks);\n let blocks = [];\n const rsDiv = _QrCode.reedSolomonComputeDivisor(blockEccLen);\n for (let i = 0, k = 0; i < numBlocks; i++) {\n let dat = data.slice(k, k + shortBlockLen - blockEccLen + (i < numShortBlocks ? 0 : 1));\n k += dat.length;\n const ecc = _QrCode.reedSolomonComputeRemainder(dat, rsDiv);\n if (i < numShortBlocks)\n dat.push(0);\n blocks.push(dat.concat(ecc));\n }\n let result = [];\n for (let i = 0; i < blocks[0].length; i++) {\n blocks.forEach((block, j) => {\n if (i != shortBlockLen - blockEccLen || j >= numShortBlocks)\n result.push(block[i]);\n });\n }\n assert(result.length == rawCodewords);\n return result;\n }\n drawCodewords(data) {\n if (data.length != Math.floor(_QrCode.getNumRawDataModules(this.version) / 8))\n throw new RangeError(\"Invalid argument\");\n let i = 0;\n for (let right = this.size - 1; right >= 1; right -= 2) {\n if (right == 6)\n right = 5;\n for (let vert = 0; vert < this.size; vert++) {\n for (let j = 0; j < 2; j++) {\n const x = right - j;\n const upward = (right + 1 & 2) == 0;\n const y = upward ? this.size - 1 - vert : vert;\n if (!this.isFunction[y][x] && i < data.length * 8) {\n this.modules[y][x] = getBit(data[i >>> 3], 7 - (i & 7));\n i++;\n }\n }\n }\n }\n assert(i == data.length * 8);\n }\n applyMask(mask) {\n if (mask < 0 || mask > 7)\n throw new RangeError(\"Mask value out of range\");\n for (let y = 0; y < this.size; y++) {\n for (let x = 0; x < this.size; x++) {\n let invert;\n switch (mask) {\n case 0:\n invert = (x + y) % 2 == 0;\n break;\n case 1:\n invert = y % 2 == 0;\n break;\n case 2:\n invert = x % 3 == 0;\n break;\n case 3:\n invert = (x + y) % 3 == 0;\n break;\n case 4:\n invert = (Math.floor(x / 3) + Math.floor(y / 2)) % 2 == 0;\n break;\n case 5:\n invert = x * y % 2 + x * y % 3 == 0;\n break;\n case 6:\n invert = (x * y % 2 + x * y % 3) % 2 == 0;\n break;\n case 7:\n invert = ((x + y) % 2 + x * y % 3) % 2 == 0;\n break;\n default:\n throw new Error(\"Unreachable\");\n }\n if (!this.isFunction[y][x] && invert)\n this.modules[y][x] = !this.modules[y][x];\n }\n }\n }\n getPenaltyScore() {\n let result = 0;\n for (let y = 0; y < this.size; y++) {\n let runColor = false;\n let runX = 0;\n let runHistory = [0, 0, 0, 0, 0, 0, 0];\n for (let x = 0; x < this.size; x++) {\n if (this.modules[y][x] == runColor) {\n runX++;\n if (runX == 5)\n result += _QrCode.PENALTY_N1;\n else if (runX > 5)\n result++;\n } else {\n this.finderPenaltyAddHistory(runX, runHistory);\n if (!runColor)\n result += this.finderPenaltyCountPatterns(runHistory) * _QrCode.PENALTY_N3;\n runColor = this.modules[y][x];\n runX = 1;\n }\n }\n result += this.finderPenaltyTerminateAndCount(runColor, runX, runHistory) * _QrCode.PENALTY_N3;\n }\n for (let x = 0; x < this.size; x++) {\n let runColor = false;\n let runY = 0;\n let runHistory = [0, 0, 0, 0, 0, 0, 0];\n for (let y = 0; y < this.size; y++) {\n if (this.modules[y][x] == runColor) {\n runY++;\n if (runY == 5)\n result += _QrCode.PENALTY_N1;\n else if (runY > 5)\n result++;\n } else {\n this.finderPenaltyAddHistory(runY, runHistory);\n if (!runColor)\n result += this.finderPenaltyCountPatterns(runHistory) * _QrCode.PENALTY_N3;\n runColor = this.modules[y][x];\n runY = 1;\n }\n }\n result += this.finderPenaltyTerminateAndCount(runColor, runY, runHistory) * _QrCode.PENALTY_N3;\n }\n for (let y = 0; y < this.size - 1; y++) {\n for (let x = 0; x < this.size - 1; x++) {\n const color = this.modules[y][x];\n if (color == this.modules[y][x + 1] && color == this.modules[y + 1][x] && color == this.modules[y + 1][x + 1])\n result += _QrCode.PENALTY_N2;\n }\n }\n let dark = 0;\n for (const row of this.modules)\n dark = row.reduce((sum, color) => sum + (color ? 1 : 0), dark);\n const total = this.size * this.size;\n const k = Math.ceil(Math.abs(dark * 20 - total * 10) / total) - 1;\n assert(0 <= k && k <= 9);\n result += k * _QrCode.PENALTY_N4;\n assert(0 <= result && result <= 2568888);\n return result;\n }\n getAlignmentPatternPositions() {\n if (this.version == 1)\n return [];\n else {\n const numAlign = Math.floor(this.version / 7) + 2;\n const step = this.version == 32 ? 26 : Math.ceil((this.version * 4 + 4) / (numAlign * 2 - 2)) * 2;\n let result = [6];\n for (let pos = this.size - 7; result.length < numAlign; pos -= step)\n result.splice(1, 0, pos);\n return result;\n }\n }\n static getNumRawDataModules(ver) {\n if (ver < _QrCode.MIN_VERSION || ver > _QrCode.MAX_VERSION)\n throw new RangeError(\"Version number out of range\");\n let result = (16 * ver + 128) * ver + 64;\n if (ver >= 2) {\n const numAlign = Math.floor(ver / 7) + 2;\n result -= (25 * numAlign - 10) * numAlign - 55;\n if (ver >= 7)\n result -= 36;\n }\n assert(208 <= result && result <= 29648);\n return result;\n }\n static getNumDataCodewords(ver, ecl) {\n return Math.floor(_QrCode.getNumRawDataModules(ver) / 8) - _QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver] * _QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n }\n static reedSolomonComputeDivisor(degree) {\n if (degree < 1 || degree > 255)\n throw new RangeError(\"Degree out of range\");\n let result = [];\n for (let i = 0; i < degree - 1; i++)\n result.push(0);\n result.push(1);\n let root = 1;\n for (let i = 0; i < degree; i++) {\n for (let j = 0; j < result.length; j++) {\n result[j] = _QrCode.reedSolomonMultiply(result[j], root);\n if (j + 1 < result.length)\n result[j] ^= result[j + 1];\n }\n root = _QrCode.reedSolomonMultiply(root, 2);\n }\n return result;\n }\n static reedSolomonComputeRemainder(data, divisor) {\n let result = divisor.map((_) => 0);\n for (const b of data) {\n const factor = b ^ result.shift();\n result.push(0);\n divisor.forEach((coef, i) => result[i] ^= _QrCode.reedSolomonMultiply(coef, factor));\n }\n return result;\n }\n static reedSolomonMultiply(x, y) {\n if (x >>> 8 != 0 || y >>> 8 != 0)\n throw new RangeError(\"Byte out of range\");\n let z = 0;\n for (let i = 7; i >= 0; i--) {\n z = z << 1 ^ (z >>> 7) * 285;\n z ^= (y >>> i & 1) * x;\n }\n assert(z >>> 8 == 0);\n return z;\n }\n finderPenaltyCountPatterns(runHistory) {\n const n = runHistory[1];\n assert(n <= this.size * 3);\n const core = n > 0 && runHistory[2] == n && runHistory[3] == n * 3 && runHistory[4] == n && runHistory[5] == n;\n return (core && runHistory[0] >= n * 4 && runHistory[6] >= n ? 1 : 0) + (core && runHistory[6] >= n * 4 && runHistory[0] >= n ? 1 : 0);\n }\n finderPenaltyTerminateAndCount(currentRunColor, currentRunLength, runHistory) {\n if (currentRunColor) {\n this.finderPenaltyAddHistory(currentRunLength, runHistory);\n currentRunLength = 0;\n }\n currentRunLength += this.size;\n this.finderPenaltyAddHistory(currentRunLength, runHistory);\n return this.finderPenaltyCountPatterns(runHistory);\n }\n finderPenaltyAddHistory(currentRunLength, runHistory) {\n if (runHistory[0] == 0)\n currentRunLength += this.size;\n runHistory.pop();\n runHistory.unshift(currentRunLength);\n }\n };\n let QrCode = _QrCode;\n QrCode.MIN_VERSION = 1;\n QrCode.MAX_VERSION = 40;\n QrCode.PENALTY_N1 = 3;\n QrCode.PENALTY_N2 = 3;\n QrCode.PENALTY_N3 = 40;\n QrCode.PENALTY_N4 = 10;\n QrCode.ECC_CODEWORDS_PER_BLOCK = [\n [-1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],\n [-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28],\n [-1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],\n [-1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30]\n ];\n QrCode.NUM_ERROR_CORRECTION_BLOCKS = [\n [-1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25],\n [-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49],\n [-1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68],\n [-1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81]\n ];\n qrcodegen2.QrCode = QrCode;\n function appendBits(val, len, bb) {\n if (len < 0 || len > 31 || val >>> len != 0)\n throw new RangeError(\"Value out of range\");\n for (let i = len - 1; i >= 0; i--)\n bb.push(val >>> i & 1);\n }\n function getBit(x, i) {\n return (x >>> i & 1) != 0;\n }\n function assert(cond) {\n if (!cond)\n throw new Error(\"Assertion error\");\n }\n const _QrSegment = class {\n constructor(mode, numChars, bitData) {\n this.mode = mode;\n this.numChars = numChars;\n this.bitData = bitData;\n if (numChars < 0)\n throw new RangeError(\"Invalid argument\");\n this.bitData = bitData.slice();\n }\n static makeBytes(data) {\n let bb = [];\n for (const b of data)\n appendBits(b, 8, bb);\n return new _QrSegment(_QrSegment.Mode.BYTE, data.length, bb);\n }\n static makeNumeric(digits) {\n if (!_QrSegment.isNumeric(digits))\n throw new RangeError(\"String contains non-numeric characters\");\n let bb = [];\n for (let i = 0; i < digits.length; ) {\n const n = Math.min(digits.length - i, 3);\n appendBits(parseInt(digits.substr(i, n), 10), n * 3 + 1, bb);\n i += n;\n }\n return new _QrSegment(_QrSegment.Mode.NUMERIC, digits.length, bb);\n }\n static makeAlphanumeric(text) {\n if (!_QrSegment.isAlphanumeric(text))\n throw new RangeError(\"String contains unencodable characters in alphanumeric mode\");\n let bb = [];\n let i;\n for (i = 0; i + 2 <= text.length; i += 2) {\n let temp = _QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)) * 45;\n temp += _QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i + 1));\n appendBits(temp, 11, bb);\n }\n if (i < text.length)\n appendBits(_QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)), 6, bb);\n return new _QrSegment(_QrSegment.Mode.ALPHANUMERIC, text.length, bb);\n }\n static makeSegments(text) {\n if (text == \"\")\n return [];\n else if (_QrSegment.isNumeric(text))\n return [_QrSegment.makeNumeric(text)];\n else if (_QrSegment.isAlphanumeric(text))\n return [_QrSegment.makeAlphanumeric(text)];\n else\n return [_QrSegment.makeBytes(_QrSegment.toUtf8ByteArray(text))];\n }\n static makeEci(assignVal) {\n let bb = [];\n if (assignVal < 0)\n throw new RangeError(\"ECI assignment value out of range\");\n else if (assignVal < 1 << 7)\n appendBits(assignVal, 8, bb);\n else if (assignVal < 1 << 14) {\n appendBits(2, 2, bb);\n appendBits(assignVal, 14, bb);\n } else if (assignVal < 1e6) {\n appendBits(6, 3, bb);\n appendBits(assignVal, 21, bb);\n } else\n throw new RangeError(\"ECI assignment value out of range\");\n return new _QrSegment(_QrSegment.Mode.ECI, 0, bb);\n }\n static isNumeric(text) {\n return _QrSegment.NUMERIC_REGEX.test(text);\n }\n static isAlphanumeric(text) {\n return _QrSegment.ALPHANUMERIC_REGEX.test(text);\n }\n getData() {\n return this.bitData.slice();\n }\n static getTotalBits(segs, version) {\n let result = 0;\n for (const seg of segs) {\n const ccbits = seg.mode.numCharCountBits(version);\n if (seg.numChars >= 1 << ccbits)\n return Infinity;\n result += 4 + ccbits + seg.bitData.length;\n }\n return result;\n }\n static toUtf8ByteArray(str) {\n str = encodeURI(str);\n let result = [];\n for (let i = 0; i < str.length; i++) {\n if (str.charAt(i) != \"%\")\n result.push(str.charCodeAt(i));\n else {\n result.push(parseInt(str.substr(i + 1, 2), 16));\n i += 2;\n }\n }\n return result;\n }\n };\n let QrSegment = _QrSegment;\n QrSegment.NUMERIC_REGEX = /^[0-9]*$/;\n QrSegment.ALPHANUMERIC_REGEX = /^[A-Z0-9 $%*+.\\/:-]*$/;\n QrSegment.ALPHANUMERIC_CHARSET = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:\";\n qrcodegen2.QrSegment = QrSegment;\n})(qrcodegen || (qrcodegen = {}));\n((qrcodegen2) => {\n let QrCode;\n ((QrCode2) => {\n const _Ecc = class {\n constructor(ordinal, formatBits) {\n this.ordinal = ordinal;\n this.formatBits = formatBits;\n }\n };\n let Ecc = _Ecc;\n Ecc.LOW = new _Ecc(0, 1);\n Ecc.MEDIUM = new _Ecc(1, 0);\n Ecc.QUARTILE = new _Ecc(2, 3);\n Ecc.HIGH = new _Ecc(3, 2);\n QrCode2.Ecc = Ecc;\n })(QrCode = qrcodegen2.QrCode || (qrcodegen2.QrCode = {}));\n})(qrcodegen || (qrcodegen = {}));\n((qrcodegen2) => {\n let QrSegment;\n ((QrSegment2) => {\n const _Mode = class {\n constructor(modeBits, numBitsCharCount) {\n this.modeBits = modeBits;\n this.numBitsCharCount = numBitsCharCount;\n }\n numCharCountBits(ver) {\n return this.numBitsCharCount[Math.floor((ver + 7) / 17)];\n }\n };\n let Mode = _Mode;\n Mode.NUMERIC = new _Mode(1, [10, 12, 14]);\n Mode.ALPHANUMERIC = new _Mode(2, [9, 11, 13]);\n Mode.BYTE = new _Mode(4, [8, 16, 16]);\n Mode.KANJI = new _Mode(8, [8, 10, 12]);\n Mode.ECI = new _Mode(7, [0, 0, 0]);\n QrSegment2.Mode = Mode;\n })(QrSegment = qrcodegen2.QrSegment || (qrcodegen2.QrSegment = {}));\n})(qrcodegen || (qrcodegen = {}));\nvar qrcodegen_default = qrcodegen;\n\n// src/index.tsx\n/**\n * @license qrcode.react\n * Copyright (c) Paul O'Shannessy\n * SPDX-License-Identifier: ISC\n */\nvar ERROR_LEVEL_MAP = {\n L: qrcodegen_default.QrCode.Ecc.LOW,\n M: qrcodegen_default.QrCode.Ecc.MEDIUM,\n Q: qrcodegen_default.QrCode.Ecc.QUARTILE,\n H: qrcodegen_default.QrCode.Ecc.HIGH\n};\nvar DEFAULT_SIZE = 128;\nvar DEFAULT_LEVEL = \"L\";\nvar DEFAULT_BGCOLOR = \"#FFFFFF\";\nvar DEFAULT_FGCOLOR = \"#000000\";\nvar DEFAULT_INCLUDEMARGIN = false;\nvar MARGIN_SIZE = 4;\nvar DEFAULT_IMG_SCALE = 0.1;\nfunction generatePath(modules, margin = 0) {\n const ops = [];\n modules.forEach(function(row, y) {\n let start = null;\n row.forEach(function(cell, x) {\n if (!cell && start !== null) {\n ops.push(`M${start + margin} ${y + margin}h${x - start}v1H${start + margin}z`);\n start = null;\n return;\n }\n if (x === row.length - 1) {\n if (!cell) {\n return;\n }\n if (start === null) {\n ops.push(`M${x + margin},${y + margin} h1v1H${x + margin}z`);\n } else {\n ops.push(`M${start + margin},${y + margin} h${x + 1 - start}v1H${start + margin}z`);\n }\n return;\n }\n if (cell && start === null) {\n start = x;\n }\n });\n });\n return ops.join(\"\");\n}\nfunction excavateModules(modules, excavation) {\n return modules.slice().map((row, y) => {\n if (y < excavation.y || y >= excavation.y + excavation.h) {\n return row;\n }\n return row.map((cell, x) => {\n if (x < excavation.x || x >= excavation.x + excavation.w) {\n return cell;\n }\n return false;\n });\n });\n}\nfunction getImageSettings(cells, size, includeMargin, imageSettings) {\n if (imageSettings == null) {\n return null;\n }\n const margin = includeMargin ? MARGIN_SIZE : 0;\n const numCells = cells.length + margin * 2;\n const defaultSize = Math.floor(size * DEFAULT_IMG_SCALE);\n const scale = numCells / size;\n const w = (imageSettings.width || defaultSize) * scale;\n const h = (imageSettings.height || defaultSize) * scale;\n const x = imageSettings.x == null ? cells.length / 2 - w / 2 : imageSettings.x * scale;\n const y = imageSettings.y == null ? cells.length / 2 - h / 2 : imageSettings.y * scale;\n let excavation = null;\n if (imageSettings.excavate) {\n let floorX = Math.floor(x);\n let floorY = Math.floor(y);\n let ceilW = Math.ceil(w + x - floorX);\n let ceilH = Math.ceil(h + y - floorY);\n excavation = { x: floorX, y: floorY, w: ceilW, h: ceilH };\n }\n return { x, y, h, w, excavation };\n}\nvar SUPPORTS_PATH2D = function() {\n try {\n new Path2D().addPath(new Path2D());\n } catch (e) {\n return false;\n }\n return true;\n}();\nfunction QRCodeCanvas(props) {\n const _a = props, {\n value,\n size = DEFAULT_SIZE,\n level = DEFAULT_LEVEL,\n bgColor = DEFAULT_BGCOLOR,\n fgColor = DEFAULT_FGCOLOR,\n includeMargin = DEFAULT_INCLUDEMARGIN,\n style,\n imageSettings\n } = _a, otherProps = __objRest(_a, [\n \"value\",\n \"size\",\n \"level\",\n \"bgColor\",\n \"fgColor\",\n \"includeMargin\",\n \"style\",\n \"imageSettings\"\n ]);\n const imgSrc = imageSettings == null ? void 0 : imageSettings.src;\n const _canvas = useRef(null);\n const _image = useRef(null);\n const [isImgLoaded, setIsImageLoaded] = useState(false);\n useEffect(() => {\n if (_canvas.current != null) {\n const canvas = _canvas.current;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n return;\n }\n let cells = qrcodegen_default.QrCode.encodeText(value, ERROR_LEVEL_MAP[level]).getModules();\n const margin = includeMargin ? MARGIN_SIZE : 0;\n const numCells = cells.length + margin * 2;\n const calculatedImageSettings = getImageSettings(cells, size, includeMargin, imageSettings);\n const image = _image.current;\n const haveImageToRender = calculatedImageSettings != null && image !== null && image.complete && image.naturalHeight !== 0 && image.naturalWidth !== 0;\n if (haveImageToRender) {\n if (calculatedImageSettings.excavation != null) {\n cells = excavateModules(cells, calculatedImageSettings.excavation);\n }\n }\n const pixelRatio = window.devicePixelRatio || 1;\n canvas.height = canvas.width = size * pixelRatio;\n const scale = size / numCells * pixelRatio;\n ctx.scale(scale, scale);\n ctx.fillStyle = bgColor;\n ctx.fillRect(0, 0, numCells, numCells);\n ctx.fillStyle = fgColor;\n if (SUPPORTS_PATH2D) {\n ctx.fill(new Path2D(generatePath(cells, margin)));\n } else {\n cells.forEach(function(row, rdx) {\n row.forEach(function(cell, cdx) {\n if (cell) {\n ctx.fillRect(cdx + margin, rdx + margin, 1, 1);\n }\n });\n });\n }\n if (haveImageToRender) {\n ctx.drawImage(image, calculatedImageSettings.x + margin, calculatedImageSettings.y + margin, calculatedImageSettings.w, calculatedImageSettings.h);\n }\n }\n });\n useEffect(() => {\n setIsImageLoaded(false);\n }, [imgSrc]);\n const canvasStyle = __spreadValues({ height: size, width: size }, style);\n let img = null;\n if (imgSrc != null) {\n img = /* @__PURE__ */ React.createElement(\"img\", {\n src: imgSrc,\n key: imgSrc,\n style: { display: \"none\" },\n onLoad: () => {\n setIsImageLoaded(true);\n },\n ref: _image\n });\n }\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"canvas\", __spreadValues({\n style: canvasStyle,\n height: size,\n width: size,\n ref: _canvas\n }, otherProps)), img);\n}\nfunction QRCodeSVG(props) {\n const _a = props, {\n value,\n size = DEFAULT_SIZE,\n level = DEFAULT_LEVEL,\n bgColor = DEFAULT_BGCOLOR,\n fgColor = DEFAULT_FGCOLOR,\n includeMargin = DEFAULT_INCLUDEMARGIN,\n imageSettings\n } = _a, otherProps = __objRest(_a, [\n \"value\",\n \"size\",\n \"level\",\n \"bgColor\",\n \"fgColor\",\n \"includeMargin\",\n \"imageSettings\"\n ]);\n let cells = qrcodegen_default.QrCode.encodeText(value, ERROR_LEVEL_MAP[level]).getModules();\n const margin = includeMargin ? MARGIN_SIZE : 0;\n const numCells = cells.length + margin * 2;\n const calculatedImageSettings = getImageSettings(cells, size, includeMargin, imageSettings);\n let image = null;\n if (imageSettings != null && calculatedImageSettings != null) {\n if (calculatedImageSettings.excavation != null) {\n cells = excavateModules(cells, calculatedImageSettings.excavation);\n }\n image = /* @__PURE__ */ React.createElement(\"image\", {\n xlinkHref: imageSettings.src,\n height: calculatedImageSettings.h,\n width: calculatedImageSettings.w,\n x: calculatedImageSettings.x + margin,\n y: calculatedImageSettings.y + margin,\n preserveAspectRatio: \"none\"\n });\n }\n const fgPath = generatePath(cells, margin);\n return /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({\n height: size,\n width: size,\n viewBox: `0 0 ${numCells} ${numCells}`\n }, otherProps), /* @__PURE__ */ React.createElement(\"path\", {\n fill: bgColor,\n d: `M0,0 h${numCells}v${numCells}H0z`,\n shapeRendering: \"crispEdges\"\n }), /* @__PURE__ */ React.createElement(\"path\", {\n fill: fgColor,\n d: fgPath,\n shapeRendering: \"crispEdges\"\n }), image);\n}\nvar QRCode = (props) => {\n const _a = props, { renderAs } = _a, otherProps = __objRest(_a, [\"renderAs\"]);\n if (renderAs === \"svg\") {\n return /* @__PURE__ */ React.createElement(QRCodeSVG, __spreadValues({}, otherProps));\n }\n return /* @__PURE__ */ React.createElement(QRCodeCanvas, __spreadValues({}, otherProps));\n};\nexport {\n QRCodeCanvas,\n QRCodeSVG,\n QRCode as default\n};\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _mask, _g, _path10, _path11, _path12, _path13, _path14, _path15;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgOiLogo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 234,\n height: 24,\n viewBox: \"0 0 234 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.6942 11.0791C14.6942 15.0432 11.7826 18.2565 7.272 18.2565C3.1728 18.2565 0 15.1399 0 11.1765C0 7.00731 3.24823 4.09646 7.34743 4.09646C11.4466 4.09646 14.6942 7.11497 14.6942 11.0791ZM7.34743 15.5849C9.78103 15.5849 11.5152 13.6107 11.5152 11.1765C11.5152 8.74149 9.96069 6.768 7.34743 6.768C4.7856 6.768 3.17897 8.74149 3.17897 11.1765C3.17897 13.6107 4.89669 15.5849 7.34743 15.5849Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M50.3143 11.0791C50.3143 15.0432 47.4027 18.2565 42.8914 18.2565C38.7929 18.2565 35.6201 15.1399 35.6201 11.1765C35.6201 7.00731 38.8677 4.09646 42.9675 4.09646C47.0667 4.09646 50.3143 7.11497 50.3143 11.0791ZM42.9675 15.5849C45.4011 15.5849 47.1353 13.6107 47.1353 11.1765C47.1353 8.74149 45.5808 6.768 42.9675 6.768C40.4057 6.768 38.7991 8.74149 38.7991 11.1765C38.7991 13.6107 40.5168 15.5849 42.9675 15.5849Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M66.5225 12.491C66.5225 12.491 66.5231 7.06629 66.5225 5.66331C66.7796 3.70011 69.5458 4.75269 69.5458 4.75269V12.0713V12.0686C69.5458 14.3527 71.1085 15.4683 73.0361 15.4683C74.965 15.4683 76.527 14.3911 76.527 12.0686C76.527 12.0686 76.5359 7.06971 76.5353 5.66743C76.7931 3.70423 79.5586 4.75749 79.5586 4.75749V9.46286C79.9522 15.2619 85.4989 15.6953 85.4989 15.6953C91.0217 16.4599 90.5362 14.1922 90.5362 14.1922C90.3929 13.0512 89.5412 12.792 88.0724 12.6041C87.1597 12.4869 86.3677 12.4073 86.3677 12.4073C80.4479 12.0329 81.0301 8.12777 81.0301 8.12777C81.1055 4.824 84.6397 4.32137 84.6397 4.32137C87.7625 3.76526 89.9684 4.31109 89.9684 4.31109C94.8281 5.32251 92.4349 7.62514 92.0338 7.75611C92.0338 7.75611 90.7391 6.5712 87.7117 6.40046C83.9821 6.1632 84.0479 7.92343 84.0479 7.92343C83.9266 9.20777 85.5709 9.44229 85.5709 9.44229L89.5679 10.0018C94.2891 10.6601 93.7138 14.0098 93.7138 14.0098C93.4038 18.1982 88.4125 18.229 88.4125 18.229C81.5855 18.6254 79.0162 15.0809 79.0162 15.0809C78.0596 16.9838 76.1492 18.2565 72.975 18.2565C69.1906 18.2565 66.5225 16.1349 66.5225 12.3278\",\n fill: \"white\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M22.159 4.32137C16.6994 4.71086 15.4534 9.78514 15.5865 11.2601C15.5104 13.4887 17.0697 18.2565 23.1005 18.2592C23.8946 18.2441 24.6228 18.1728 25.2873 18.0501L25.2866 15.3456C24.7085 15.4478 24.0105 15.5115 23.1684 15.5342C20.3542 15.6041 18.7545 13.2953 18.7661 11.2594C18.7661 8.89851 20.6964 6.96 23.1684 6.98469L28.0466 6.984L28.0589 13.6629C28.0589 13.6629 27.7065 19.3214 34.8598 18.133V15.4389C30.893 16.2933 31.1076 13.7973 31.1076 13.7973V6.9888H34.8598V4.31726H31.1076V1.16503H28.0589V4.31726L22.159 4.32137Z\",\n fill: \"white\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M54.2382 22.3152C53.9803 24.2784 51.2148 23.2251 51.2148 23.2251V11.1765C51.3897 7.33234 53.6896 4.20137 58.4244 4.09646C62.6052 4.0032 65.6073 7.11566 65.634 11.0791C65.6615 15.2791 62.717 18.4018 58.3655 18.2174C56.8137 18.1317 55.2983 17.5207 54.2512 16.176C54.2512 16.176 54.2375 20.9122 54.2382 22.3152ZM58.3463 15.5979C60.7552 15.5979 62.4722 13.6245 62.4722 11.1895C62.4722 8.75451 60.9335 6.78103 58.3463 6.78103C55.8098 6.78103 54.2196 8.75451 54.2196 11.1895C54.2196 13.6245 55.9202 15.5979 58.3463 15.5979Z\",\n fill: \"white\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M182.737 5.93006L182.736 5.92937C181.702 4.8384 180.198 4.21303 178.614 4.21234H178.611C177.026 4.21303 175.523 4.8384 174.488 5.93006C174.019 6.43131 173.672 6.99497 173.436 7.64709C173.2 6.99566 172.854 6.43131 172.384 5.92937C171.349 4.8384 169.847 4.21303 168.261 4.21234H168.259C166.674 4.21303 165.171 4.8384 164.136 5.93006C163.149 6.98263 162.688 8.34926 162.688 10.2281V17.7209H163.485V10.2281C163.485 8.56663 163.89 7.35771 164.759 6.42514C165.611 5.5152 166.953 4.95017 168.26 4.95017C169.567 4.95017 170.908 5.5152 171.762 6.42514C172.63 7.35771 173.035 8.56663 173.035 10.2281V17.6187L173.041 17.7209H173.838V10.2281C173.838 8.56663 174.243 7.35771 175.11 6.42514C175.964 5.5152 177.306 4.95017 178.612 4.95017C179.919 4.95017 181.261 5.5152 182.113 6.42514C182.982 7.35771 183.387 8.56663 183.387 10.2281V17.7209H184.184V10.2281C184.184 8.34926 183.724 6.98263 182.737 5.93006Z\",\n fill: \"white\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M211.905 5.92937C210.87 4.83909 209.367 4.21303 207.781 4.21234H207.78C206.195 4.21303 204.692 4.83909 203.656 5.93006C202.669 6.98263 202.21 8.34926 202.21 10.2281V17.7209H203.006V10.2281C203.006 8.56663 203.411 7.35771 204.279 6.42514C205.132 5.5152 206.474 4.95017 207.781 4.95017C209.088 4.95017 210.429 5.5152 211.282 6.42514C212.151 7.35771 212.555 8.56663 212.555 10.2281V17.7209H213.352V10.2281C213.352 8.34926 212.892 6.98263 211.905 5.92937Z\",\n fill: \"white\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M139.597 15.1838C138.421 16.5531 136.791 17.2773 134.886 17.2773C133.126 17.2773 131.639 16.6526 130.583 15.4711C129.593 14.3609 129.047 12.803 129.047 11.0825V10.8309H140.757L140.753 10.7246C140.694 8.93966 140.061 7.30491 138.97 6.12069C137.821 4.87063 136.276 4.2096 134.502 4.2096C130.879 4.2096 128.25 7.10057 128.25 11.0825C128.25 15.1646 130.978 18.0144 134.886 18.0144C137.026 18.0144 138.853 17.2251 140.166 15.733L140.229 15.6603L139.67 15.1001L139.597 15.1838ZM129.119 10.093C129.548 6.96343 131.65 4.94743 134.502 4.94743C135.968 4.94743 137.264 5.48229 138.249 6.4944C139.154 7.42354 139.722 8.6976 139.858 10.093H129.119Z\",\n fill: \"white\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M198.313 15.1838C197.136 16.5531 195.507 17.2773 193.602 17.2773C191.843 17.2773 190.355 16.6526 189.299 15.4711C188.308 14.3609 187.763 12.803 187.763 11.0825V10.8309H199.473L199.47 10.7246C199.41 8.93966 198.777 7.30491 197.687 6.12069C196.536 4.87063 194.991 4.2096 193.218 4.2096C189.595 4.2096 186.966 7.10057 186.966 11.0825C186.966 15.1646 189.695 18.0144 193.602 18.0144C195.743 18.0144 197.568 17.2251 198.882 15.733L198.946 15.6603L198.386 15.1001L198.313 15.1838ZM187.836 10.093C188.264 6.96343 190.366 4.94743 193.218 4.94743C194.684 4.94743 195.98 5.48229 196.965 6.4944C197.869 7.42354 198.439 8.6976 198.574 10.093H187.836Z\",\n fill: \"white\"\n })), _mask || (_mask = /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask0\",\n \"mask-type\": \"alpha\",\n maskUnits: \"userSpaceOnUse\",\n x: 97,\n y: 0,\n width: 31,\n height: 18\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M97.7012 0H127.338V17.7216H97.7012V0Z\",\n fill: \"white\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask0)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M126.492 4.50788L121.088 16.3659L115.686 4.50788H114.839L120.875 17.7216H121.303L127.339 4.50788H126.492Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M98.4548 -0.000685692C98.882 -0.000685692 99.2084 0.3264 99.2084 0.7536C99.2084 1.1808 98.882 1.50789 98.4548 1.50789C98.0276 1.50789 97.7012 1.1808 97.7012 0.7536C97.7012 0.3264 98.0276 -0.000685692 98.4548 -0.000685692Z\",\n fill: \"white\"\n }))), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M98.0566 17.7216H98.8534V4.50788H98.0566V17.7216Z\",\n fill: \"white\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M147.216 10.4901C145.41 9.90103 143.705 9.34491 143.705 7.68274C143.705 5.88686 145.349 4.94743 146.972 4.94743C148.324 4.94743 149.443 5.36434 150.392 6.22149L150.467 6.29006L150.994 5.72229L150.91 5.65234C150.006 4.90354 148.903 4.2096 146.972 4.2096C144.579 4.2096 142.907 5.63794 142.907 7.68274C142.907 9.8976 144.958 10.5634 146.939 11.208C148.865 11.8334 150.683 12.4238 150.683 14.3349C150.683 16.1767 148.916 17.2773 147.209 17.2773C145.532 17.2773 144.366 16.7877 143.052 15.5314L142.982 15.4649L142.42 15.9874L142.495 16.0622C143.808 17.376 145.35 18.0144 147.209 18.0144C149.603 18.0144 151.48 16.3975 151.48 14.3349C151.48 11.88 149.215 11.1408 147.216 10.4901Z\",\n fill: \"white\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M228.878 10.4901C227.073 9.90103 225.367 9.34491 225.367 7.68274C225.367 5.88686 227.011 4.94743 228.635 4.94743C229.987 4.94743 231.106 5.36434 232.055 6.22149L232.13 6.29006L232.657 5.72229L232.573 5.65234C231.669 4.90354 230.566 4.2096 228.635 4.2096C226.243 4.2096 224.571 5.63794 224.571 7.68274C224.571 9.8976 226.621 10.5634 228.603 11.208C230.528 11.8334 232.346 12.4238 232.346 14.3349C232.346 16.1767 230.58 17.2773 228.872 17.2773C227.194 17.2773 226.029 16.7877 224.715 15.5314L224.645 15.4649L224.082 15.9874L224.158 16.0622C225.471 17.376 227.013 18.0144 228.872 18.0144C231.267 18.0144 233.142 16.3975 233.142 14.3349C233.142 11.88 230.877 11.1408 228.878 10.4901Z\",\n fill: \"white\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M112.032 5.92937C110.997 4.83909 109.494 4.21303 107.908 4.21234H107.907C106.322 4.21303 104.819 4.83909 103.783 5.93006C102.796 6.98263 102.337 8.34926 102.337 10.2281V17.7209H103.134V10.2281C103.134 8.56663 103.538 7.35771 104.406 6.42514C105.259 5.5152 106.601 4.95017 107.908 4.95017C109.215 4.95017 110.557 5.5152 111.409 6.42514C112.278 7.35771 112.682 8.56663 112.682 10.2281V17.7209H113.479V10.2281C113.479 8.34926 113.02 6.98263 112.032 5.92937Z\",\n fill: \"white\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M160.648 5.24297V4.50583H155.326V0.802286H154.529V11.9986C154.529 13.8782 154.989 15.2441 155.976 16.2974C157.012 17.3883 158.515 18.0144 160.101 18.0144H160.204V17.2773H160.101C158.794 17.2773 157.452 16.7115 156.599 15.8023C155.731 14.869 155.326 13.6608 155.326 11.9986V5.24297H160.648Z\",\n fill: \"white\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M222.672 5.24297V4.50583H217.351V0.802286H216.554V11.9986C216.554 13.8782 217.014 15.2441 218.001 16.2974C219.036 17.3883 220.539 18.0144 222.126 18.0144H222.228V17.2773H222.126C220.819 17.2773 219.477 16.7115 218.623 15.8023C217.755 14.869 217.351 13.6608 217.351 11.9986V5.24297H222.672Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgOiLogo);\nexport default __webpack_public_path__ + \"static/media/oi-logo.bc84405473abe767e2ee698ce360c425.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// Assets\nimport logo from \"assets/images/oi-logo.svg\";\n\n// Components\nimport ServerErrorModal from \"components/Modals/ServerError/ServerError\";\nimport Portal from \"components/Portal/Portal\";\n\nexport default function FullPageWithHeader(props) {\n return (\n <div className=\"layout layout-full-page-with-header\">\n <Portal>\n <ServerErrorModal />\n </Portal>\n <header>\n <span>\n <img src={logo} alt=\"Octopus Investments\" />\n </span>\n </header>\n <section className=\"container\">{props.children}</section>\n </div>\n );\n}\n\nFullPageWithHeader.propTypes = {\n children: PropTypes.node.isRequired,\n};\n","import React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { QRCodeSVG as QRCode } from \"qrcode.react\";\nimport { Helmet } from \"react-helmet-async\";\n\n// Layouts\nimport FullPageWithHeader from \"layouts/FullPageWithHeader\";\n\n// Components\nimport {\n Button,\n FlexBox,\n InputField,\n Loader,\n Link,\n SupportingMessage,\n TextLabel,\n} from \"@octopus-investments/deep-sea-components\";\nimport LoggingOutPage from \"pages/LoggingOutPage/LoggingOutPage\";\n\n// Assets\nimport { ArrowLeft, Clipboard } from \"@octopus-investments/deep-sea-components/Icons\";\n\n// Actions\nimport { callIdentify, enableTwoFactor, getQRCode } from \"store/slices/accountSlice\";\nimport {\n setEnableTwoFactorLoader,\n setTwoFactorRegisterButtonLoader,\n} from \"store/slices/loadersSlice\";\n\n// Tools\nimport { MFA_AUTH_CODE_TOOLTIP, VALIDATION_ERRORS } from \"utils/constants\";\n\n// Tracking\nimport { ampli } from \"ampli\";\n\n// Styles\nimport \"./TwoFactorRegisterPage.scss\";\n\nexport default function TwoFactorRegisterPage() {\n const [authAppUri, setAuthAppUri] = useState(\"\");\n const [conNbr, setConNbr] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [logout, setLogout] = useState(false);\n const [passKey, setPassKey] = useState(\"\");\n const [role, setRole] = useState(\"\");\n const [showSystemError, setShowSystemError] = useState(false);\n const [showValidationError, setShowValidationError] = useState(false);\n const [verificationCode, setVerificationCode] = useState(\"\");\n\n const { isEnableTwoFactorLoader, isTwoFactorRegisterButtonLoader } = useSelector(\n ({ loaders }) => loaders,\n );\n\n // Redux\n const reduxDispatch = useDispatch();\n\n const handleAuthAppLink = external_link_clicked => {\n ampli.externalLinkClicked({\n external_link_clicked,\n location: \"mfa_register_for_mfa\",\n user_id: conNbr,\n user_type: role,\n });\n };\n\n const handleBackToConsumerLink = () => {\n ampli.contentNavClicked({\n location: \"mfa_register_for_mfa\",\n navigation_type: \"Back to my account\",\n user_id: conNbr,\n user_type: role,\n });\n\n ampli.contentNavClicked({\n location: \"mfa_register_error_page\",\n navigation_type: \"Back to my account\",\n user_id: conNbr,\n user_type: role,\n });\n\n window.location.href = `${process.env.REACT_APP_WELCOME_BTN_URL}account?tab=security`;\n };\n\n const handleTryAgainButton = () => {\n ampli.contentNavClicked({\n location: \"mfa_register_error_page\",\n navigation_type: \"Try again\",\n user_id: conNbr,\n user_type: role,\n });\n setVerificationCode(\"\");\n setShowSystemError(false);\n };\n\n const handleAuthCodeTooltip = () => {\n ampli.tooltipViewed({\n location: \"mfa_register_for_mfa\",\n tooltip_type: \"authentication_code\",\n user_id: conNbr,\n user_type: role,\n });\n };\n\n const handleCopyToClipboard = text => {\n ampli.mfaPasskeyCopied({ user_id: conNbr, user_type: role });\n\n navigator.clipboard.writeText(text).then(\n () => {\n console.info(\"Copied to clipboard successfully!\");\n },\n err => {\n console.error(\"Failed to copy text to clipboard\", err);\n },\n );\n };\n\n const MICROSOFT_AUTHENTICATOR = (\n <Link\n isInline\n href=\"https://www.microsoft.com/en-gb/security/mobile-authenticator-app\"\n onLinkClick={() => handleAuthAppLink(\"mfa_microsoft\")}\n target=\"_blank\"\n >\n Microsoft Authenticator\n </Link>\n );\n const GOOGLE_AUTHENTICATOR = (\n <Link\n isInline\n href=\"https://support.google.com/accounts/answer/1066447?hl=en&co=GENIE.Platform%3DAndroid\"\n onLinkClick={() => handleAuthAppLink(\"mfa_google\")}\n target=\"_blank\"\n >\n Google Authenticator\n </Link>\n );\n\n const APPLE_AUTHENTICATOR = (\n <Link\n isInline\n href=\"https://apps.apple.com/gb/app/passwords/id6473799789\"\n onLinkClick={() => handleAuthAppLink(\"mfa_apple\")}\n target=\"_blank\"\n >\n Apple Passwords\n </Link>\n );\n\n const renderBackToConsumerButton = () => (\n <Link\n className=\"back-button\"\n id=\"backToConsumerButton\"\n onLinkClick={() => handleBackToConsumerLink()}\n startIcon={<ArrowLeft />}\n >\n Back\n </Link>\n );\n\n function handleVerificationCodeChange(e) {\n setVerificationCode(e.value);\n setShowValidationError(showValidationError ? false : showValidationError);\n }\n\n function handleVerificationCodeKeyPress(e) {\n if (e.which === 13) handleVerifyButton();\n }\n\n const applyDelay = async (startTime, latency) => {\n const elapsedTime = Date.now() - startTime;\n const remainingTime = latency - elapsedTime;\n\n if (remainingTime > 0) {\n reduxDispatch(setEnableTwoFactorLoader(true));\n await new Promise(resolve => setTimeout(resolve, remainingTime));\n }\n };\n\n const handleVerifyButton = async () => {\n const LATENCY = 5000;\n ampli.mfaVerifyClicked({ user_id: conNbr, user_type: role });\n\n if (isEnableTwoFactorLoader) return;\n\n if (verificationCode === \"\") {\n return setShowValidationError(true);\n }\n\n reduxDispatch(setEnableTwoFactorLoader(true));\n\n const startTime = Date.now();\n const result = await reduxDispatch(enableTwoFactor({ email, verificationCode }));\n const { success } = result.payload;\n\n await applyDelay(startTime, LATENCY);\n\n if (success) {\n ampli.mfaRegistrationCompleted({ user_id: conNbr, user_type: role });\n setLogout(true);\n } else {\n ampli.mfaRegistrationFailed({ user_id: conNbr, user_type: role });\n setShowValidationError(true);\n }\n return reduxDispatch(setEnableTwoFactorLoader(false));\n };\n\n useEffect(() => {\n reduxDispatch(setTwoFactorRegisterButtonLoader(true));\n reduxDispatch(callIdentify()).then(meResult => {\n const { email, contact, contactTypes, twoFactorEnabled } = meResult.payload;\n\n if (twoFactorEnabled)\n window.location.href = `${process.env.REACT_APP_WELCOME_BTN_URL}account?tab=security`;\n\n setEmail(email);\n setConNbr(contact);\n setRole(contactTypes[0]);\n\n reduxDispatch(getQRCode({ email })).then(codeResult => {\n const { authAppUri, authenticatorKey, success } = codeResult.payload;\n\n if (success) {\n setPassKey(authenticatorKey);\n setAuthAppUri(authAppUri);\n reduxDispatch(setTwoFactorRegisterButtonLoader(false));\n } else {\n setShowSystemError(true);\n return reduxDispatch(setTwoFactorRegisterButtonLoader(false));\n }\n });\n });\n }, []);\n\n if (isEnableTwoFactorLoader) {\n return (\n <FullPageWithHeader>\n <Helmet>\n <title>Octopus Investments Portal | MFA\n
\n
\n \n \n \n

Loading...

\n

Please do not close or reload this page.

\n

\n This page will automatically refresh and you will be taken back to the login page.\n Verification will be complete once you have logged in.\n

\n
\n \n
\n \n );\n }\n\n return logout ? (\n \n ) : (\n \n \n Octopus Investments Portal | MFA\n \n
\n {renderBackToConsumerButton()}\n {showSystemError ? (\n \n \n Error\n

\n Unfortunately, there was an error registering you for Multi-Factor Authentication.\n

\n \n }\n iconPosition=\"right\"\n label=\"Passkey\"\n placeholder=\"Loading...\"\n type=\"text\"\n readOnly\n />\n
\n \n
\n
3
\n Enter the 6 digit verification code provided in the box below: \n
\n handleAuthCodeTooltip(),\n position: \"top\",\n }}\n />\n
\n \n \n
\n {showValidationError && (\n \n )}\n
\n \n \n )}\n
\n
\n );\n}\n","import React, { useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\n// Pages\nimport TwoFactorRegisterPage from \"pages/TwoFactorRegisterPages/TwoFactorRegisterPage/TwoFactorRegisterPage\";\nimport LoggingOutPage from \"pages/LoggingOutPage/LoggingOutPage\";\nimport LoadingPage from \"pages/LoadingPage/LoadingPage\";\n\n// Actions\nimport { isSignedIn } from \"store/slices/accountSlice\";\nimport { setContent } from \"store/slices/applicationSlice\";\nimport { setLoader } from \"store/slices/loadersSlice\";\n\nexport default function TwoFactorRegisterPages() {\n const { content } = useSelector(({ application }) => application);\n const { isLoader } = useSelector(({ loaders }) => loaders);\n\n // Redux\n const reduxDispatch = useDispatch();\n\n // Constants\n const PAGES = Object.freeze({\n TwoFactorRegisterPage: ,\n LoggingOutPage: ,\n });\n\n useEffect(() => {\n reduxDispatch(isSignedIn()).then(result => {\n const { signedIn } = result.payload;\n const redirectToPage = signedIn ? \"TwoFactorRegisterPage\" : \"LoggingOutPage\";\n\n reduxDispatch(setContent(redirectToPage));\n reduxDispatch(setLoader(false));\n });\n }, []);\n\n return isLoader ? (\n \n ) : (\n PAGES[content]\n );\n}\n","export default function warn(s) {\n console.warn('[react-ga]', s);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = [\"to\", \"target\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport warn from '../utils/console/warn';\nvar NEWTAB = '_blank';\nvar MIDDLECLICK = 1;\n\nvar OutboundLink = /*#__PURE__*/function (_Component) {\n _inherits(OutboundLink, _Component);\n\n var _super = _createSuper(OutboundLink);\n\n function OutboundLink() {\n var _this;\n\n _classCallCheck(this, OutboundLink);\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 = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (event) {\n var _this$props = _this.props,\n target = _this$props.target,\n eventLabel = _this$props.eventLabel,\n to = _this$props.to,\n onClick = _this$props.onClick,\n trackerNames = _this$props.trackerNames;\n var eventMeta = {\n label: eventLabel\n };\n var sameTarget = target !== NEWTAB;\n var normalClick = !(event.ctrlKey || event.shiftKey || event.metaKey || event.button === MIDDLECLICK);\n\n if (sameTarget && normalClick) {\n event.preventDefault();\n OutboundLink.trackLink(eventMeta, function () {\n window.location.href = to;\n }, trackerNames);\n } else {\n OutboundLink.trackLink(eventMeta, function () {}, trackerNames);\n }\n\n if (onClick) {\n onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(OutboundLink, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n href = _this$props2.to,\n target = _this$props2.target,\n oldProps = _objectWithoutProperties(_this$props2, _excluded);\n\n var props = _objectSpread(_objectSpread({}, oldProps), {}, {\n target: target,\n href: href,\n onClick: this.handleClick\n });\n\n if (target === NEWTAB) {\n props.rel = \"\".concat(props.rel ? props.rel : '', \" noopener noreferrer\").trim();\n }\n\n delete props.eventLabel;\n delete props.trackerNames;\n return /*#__PURE__*/React.createElement('a', props);\n }\n }]);\n\n return OutboundLink;\n}(Component);\n\n_defineProperty(OutboundLink, \"trackLink\", function () {\n warn('ga tracking not enabled');\n});\n\nexport { OutboundLink as default };\nOutboundLink.propTypes = {\n eventLabel: PropTypes.string.isRequired,\n target: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n trackerNames: PropTypes.arrayOf(PropTypes.string)\n};\nOutboundLink.defaultProps = {\n target: null,\n to: null,\n onClick: null,\n trackerNames: null\n};","import warn from './console/warn';\nimport mightBeEmail from './mightBeEmail';\nvar redacted = 'REDACTED (Potential Email Address)';\nexport default function redactEmail(string) {\n if (mightBeEmail(string)) {\n warn('This arg looks like an email address, redacting.');\n return redacted;\n }\n\n return string;\n}","// GA strings need to have leading/trailing whitespace trimmed, and not all\n// browsers have String.prototoype.trim().\nexport default function trim(s) {\n return s && s.toString().replace(/^\\s+|\\s+$/g, '');\n}","/**\n * To Title Case 2.1 - http://individed.com/code/to-title-case/\n * Copyright 2008-2013 David Gouch. Licensed under the MIT License.\n * https://github.com/gouch/to-title-case\n */\nimport trim from './trim';\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i; // test\n\nexport default function toTitleCase(string) {\n return trim(string).replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== ':' && (title.charAt(index + match.length) !== '-' || title.charAt(index - 1) === '-') && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}","import redactEmail from './redactEmail';\nimport toTitleCase from './toTitleCase';\nexport default function format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var _str = s || '';\n\n if (titleCase) {\n _str = toTitleCase(s);\n }\n\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n\n return _str;\n}","// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nexport default function mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === 'string' && s.indexOf('@') !== -1;\n}","var isLoaded = false;\nexport default function (options) {\n if (isLoaded) return;\n isLoaded = true;\n var gaAddress = 'https://www.google-analytics.com/analytics.js';\n\n if (options && options.gaAddress) {\n gaAddress = options.gaAddress;\n } else if (options && options.debug) {\n gaAddress = 'https://www.google-analytics.com/analytics_debug.js';\n }\n\n var onerror = options && options.onerror; // https://developers.google.com/analytics/devguides/collection/analyticsjs/\n\n /* eslint-disable */\n\n (function (i, s, o, g, r, a, m) {\n i['GoogleAnalyticsObject'] = r;\n i[r] = i[r] || function () {\n (i[r].q = i[r].q || []).push(arguments);\n }, i[r].l = 1 * new Date();\n a = s.createElement(o), m = s.getElementsByTagName(o)[0];\n a.async = 1;\n a.src = g;\n a.onerror = onerror;\n m.parentNode.insertBefore(a, m);\n })(window, document, 'script', gaAddress, 'ga');\n /* eslint-enable */\n\n}","export default function log(s) {\n console.info('[react-ga]', s);\n}","export var gaCalls = [];\nexport default {\n calls: gaCalls,\n ga: function ga() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n gaCalls.push([].concat(args));\n },\n resetCalls: function resetCalls() {\n gaCalls.length = 0;\n }\n};","var _excluded = [\"category\", \"action\", \"label\", \"value\", \"nonInteraction\", \"transport\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : 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\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\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 _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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\n/**\n * React Google Analytics Module\n *\n * @package react-ga\n * @author Adam Lofting \n * Atul Varma \n */\n\n/**\n * Utilities\n */\nimport format from './utils/format';\nimport removeLeadingSlash from './utils/removeLeadingSlash';\nimport trim from './utils/trim';\nimport loadGA from './utils/loadGA';\nimport warn from './utils/console/warn';\nimport log from './utils/console/log';\nimport TestModeAPI from './utils/testModeAPI';\n\nvar _isNotBrowser = typeof window === 'undefined' || typeof document === 'undefined';\n\nvar _debug = false;\nvar _titleCase = true;\nvar _testMode = false;\nvar _alwaysSendToDefaultTracker = true;\nvar _redactEmail = true;\n\nvar internalGa = function internalGa() {\n var _window;\n\n if (_testMode) return TestModeAPI.ga.apply(TestModeAPI, arguments);\n if (_isNotBrowser) return false;\n if (!window.ga) return warn('ReactGA.initialize must be called first or GoogleAnalytics should be loaded manually');\n return (_window = window).ga.apply(_window, arguments);\n};\n\nfunction _format(s) {\n return format(s, _titleCase, _redactEmail);\n}\n\nfunction _gaCommand(trackerNames) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var command = args[0];\n\n if (typeof internalGa === 'function') {\n if (typeof command !== 'string') {\n warn('ga command must be a string');\n return;\n }\n\n if (_alwaysSendToDefaultTracker || !Array.isArray(trackerNames)) internalGa.apply(void 0, args);\n\n if (Array.isArray(trackerNames)) {\n trackerNames.forEach(function (name) {\n internalGa.apply(void 0, _toConsumableArray([\"\".concat(name, \".\").concat(command)].concat(args.slice(1))));\n });\n }\n }\n}\n\nfunction _initialize(gaTrackingID, options) {\n if (!gaTrackingID) {\n warn('gaTrackingID is required in initialize()');\n return;\n }\n\n if (options) {\n if (options.debug && options.debug === true) {\n _debug = true;\n }\n\n if (options.titleCase === false) {\n _titleCase = false;\n }\n\n if (options.redactEmail === false) {\n _redactEmail = false;\n }\n\n if (options.useExistingGa) {\n return;\n }\n }\n\n if (options && options.gaOptions) {\n internalGa('create', gaTrackingID, options.gaOptions);\n } else {\n internalGa('create', gaTrackingID, 'auto');\n }\n}\n\nexport function addTrackers(configsOrTrackingId, options) {\n if (Array.isArray(configsOrTrackingId)) {\n configsOrTrackingId.forEach(function (config) {\n if (_typeof(config) !== 'object') {\n warn('All configs must be an object');\n return;\n }\n\n _initialize(config.trackingId, config);\n });\n } else {\n _initialize(configsOrTrackingId, options);\n }\n\n return true;\n}\nexport function initialize(configsOrTrackingId, options) {\n if (options && options.testMode === true) {\n _testMode = true;\n } else {\n if (_isNotBrowser) {\n return;\n }\n\n if (!options || options.standardImplementation !== true) loadGA(options);\n }\n\n _alwaysSendToDefaultTracker = options && typeof options.alwaysSendToDefaultTracker === 'boolean' ? options.alwaysSendToDefaultTracker : true;\n addTrackers(configsOrTrackingId, options);\n}\n/**\n * ga:\n * Returns the original GA object.\n */\n\nexport function ga() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (args.length > 0) {\n internalGa.apply(void 0, args);\n\n if (_debug) {\n log(\"called ga('arguments');\");\n log(\"with arguments: \".concat(JSON.stringify(args)));\n }\n }\n\n return window.ga;\n}\n/**\n * set:\n * GA tracker set method\n * @param {Object} fieldsObject - a field/value pair or a group of field/value pairs on the tracker\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function set(fieldsObject, trackerNames) {\n if (!fieldsObject) {\n warn('`fieldsObject` is required in .set()');\n return;\n }\n\n if (_typeof(fieldsObject) !== 'object') {\n warn('Expected `fieldsObject` arg to be an Object');\n return;\n }\n\n if (Object.keys(fieldsObject).length === 0) {\n warn('empty `fieldsObject` given to .set()');\n }\n\n _gaCommand(trackerNames, 'set', fieldsObject);\n\n if (_debug) {\n log(\"called ga('set', fieldsObject);\");\n log(\"with fieldsObject: \".concat(JSON.stringify(fieldsObject)));\n }\n}\n/**\n * send:\n * Clone of the low level `ga.send` method\n * WARNING: No validations will be applied to this\n * @param {Object} fieldObject - field object for tracking different analytics\n * @param {Array} trackerNames - trackers to send the command to\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function send(fieldObject, trackerNames) {\n _gaCommand(trackerNames, 'send', fieldObject);\n\n if (_debug) {\n log(\"called ga('send', fieldObject);\");\n log(\"with fieldObject: \".concat(JSON.stringify(fieldObject)));\n log(\"with trackers: \".concat(JSON.stringify(trackerNames)));\n }\n}\n/**\n * pageview:\n * Basic GA pageview tracking\n * @param {String} path - the current page page e.g. '/about'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n * @param {String} title - (optional) the page title e. g. 'My Website'\n */\n\nexport function pageview(rawPath, trackerNames, title) {\n if (!rawPath) {\n warn('path is required in .pageview()');\n return;\n }\n\n var path = trim(rawPath);\n\n if (path === '') {\n warn('path cannot be an empty string in .pageview()');\n return;\n }\n\n var extraFields = {};\n\n if (title) {\n extraFields.title = title;\n }\n\n if (typeof ga === 'function') {\n _gaCommand(trackerNames, 'send', _objectSpread({\n hitType: 'pageview',\n page: path\n }, extraFields));\n\n if (_debug) {\n log(\"called ga('send', 'pageview', path);\");\n var extraLog = '';\n\n if (title) {\n extraLog = \" and title: \".concat(title);\n }\n\n log(\"with path: \".concat(path).concat(extraLog));\n }\n }\n}\n/**\n * modalview:\n * a proxy to basic GA pageview tracking to consistently track\n * modal views that are an equivalent UX to a traditional pageview\n * @param {String} modalName e.g. 'add-or-edit-club'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function modalview(rawModalName, trackerNames) {\n if (!rawModalName) {\n warn('modalName is required in .modalview(modalName)');\n return;\n }\n\n var modalName = removeLeadingSlash(trim(rawModalName));\n\n if (modalName === '') {\n warn('modalName cannot be an empty string or a single / in .modalview()');\n return;\n }\n\n if (typeof ga === 'function') {\n var path = \"/modal/\".concat(modalName);\n\n _gaCommand(trackerNames, 'send', 'pageview', path);\n\n if (_debug) {\n log(\"called ga('send', 'pageview', path);\");\n log(\"with path: \".concat(path));\n }\n }\n}\n/**\n * timing:\n * GA timing\n * @param args.category {String} required\n * @param args.variable {String} required\n * @param args.value {Int} required\n * @param args.label {String} required\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function timing() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref.category,\n variable = _ref.variable,\n value = _ref.value,\n label = _ref.label;\n\n var trackerNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n if (!category || !variable || typeof value !== 'number') {\n warn('args.category, args.variable ' + 'AND args.value are required in timing() ' + 'AND args.value has to be a number');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'timing',\n timingCategory: _format(category),\n timingVar: _format(variable),\n timingValue: value\n };\n\n if (label) {\n fieldObject.timingLabel = _format(label);\n }\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * event:\n * GA event tracking\n * @param args.category {String} required\n * @param args.action {String} required\n * @param args.label {String} optional\n * @param args.value {Int} optional\n * @param args.nonInteraction {boolean} optional\n * @param args.transport {string} optional\n * @param {{action: string, category: string}} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function event() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref2.category,\n action = _ref2.action,\n label = _ref2.label,\n value = _ref2.value,\n nonInteraction = _ref2.nonInteraction,\n transport = _ref2.transport,\n args = _objectWithoutProperties(_ref2, _excluded);\n\n var trackerNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!category || !action) {\n warn('args.category AND args.action are required in event()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: _format(category),\n eventAction: _format(action)\n }; // Optional Fields\n\n if (label) {\n fieldObject.eventLabel = _format(label);\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value !== 'number') {\n warn('Expected `args.value` arg to be a Number.');\n } else {\n fieldObject.eventValue = value;\n }\n }\n\n if (typeof nonInteraction !== 'undefined') {\n if (typeof nonInteraction !== 'boolean') {\n warn('`args.nonInteraction` must be a boolean.');\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n\n if (typeof transport !== 'undefined') {\n if (typeof transport !== 'string') {\n warn('`args.transport` must be a string.');\n } else {\n if (['beacon', 'xhr', 'image'].indexOf(transport) === -1) {\n warn('`args.transport` must be either one of these values: `beacon`, `xhr` or `image`');\n }\n\n fieldObject.transport = transport;\n }\n }\n\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'dimension'.length) === 'dimension';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n });\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'metric'.length) === 'metric';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n }); // Send to GA\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * exception:\n * GA exception tracking\n * @param args.description {String} optional\n * @param args.fatal {boolean} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function exception(_ref3, trackerNames) {\n var description = _ref3.description,\n fatal = _ref3.fatal;\n\n if (typeof ga === 'function') {\n // Required Fields\n var fieldObject = {\n hitType: 'exception'\n }; // Optional Fields\n\n if (description) {\n fieldObject.exDescription = _format(description);\n }\n\n if (typeof fatal !== 'undefined') {\n if (typeof fatal !== 'boolean') {\n warn('`args.fatal` must be a boolean.');\n } else {\n fieldObject.exFatal = fatal;\n }\n } // Send to GA\n\n\n send(fieldObject, trackerNames);\n }\n}\nexport var plugin = {\n /**\n * require:\n * GA requires a plugin\n * @param name {String} e.g. 'ecommerce' or 'myplugin'\n * @param options {Object} optional e.g {path: '/log', debug: true}\n * @param trackerName {String} optional e.g 'trackerName'\n */\n require: function require(rawName, options, trackerName) {\n if (typeof ga === 'function') {\n // Required Fields\n if (!rawName) {\n warn('`name` is required in .require()');\n return;\n }\n\n var name = trim(rawName);\n\n if (name === '') {\n warn('`name` cannot be an empty string in .require()');\n return;\n }\n\n var requireString = trackerName ? \"\".concat(trackerName, \".require\") : 'require'; // Optional Fields\n\n if (options) {\n if (_typeof(options) !== 'object') {\n warn('Expected `options` arg to be an Object');\n return;\n }\n\n if (Object.keys(options).length === 0) {\n warn('Empty `options` given to .require()');\n }\n\n ga(requireString, name, options);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"', \").concat(JSON.stringify(options)));\n }\n } else {\n ga(requireString, name);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"');\"));\n }\n }\n }\n },\n\n /**\n * execute:\n * GA execute action for plugin\n * Takes variable number of arguments\n * @param pluginName {String} e.g. 'ecommerce' or 'myplugin'\n * @param action {String} e.g. 'addItem' or 'myCustomAction'\n * @param actionType {String} optional e.g. 'detail'\n * @param payload {Object} optional e.g { id: '1x5e', name : 'My product to track' }\n */\n execute: function execute(pluginName, action) {\n var payload;\n var actionType;\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n\n if (args.length === 1) {\n payload = args[0];\n } else {\n actionType = args[0];\n payload = args[1];\n }\n\n if (typeof ga === 'function') {\n if (typeof pluginName !== 'string') {\n warn('Expected `pluginName` arg to be a String.');\n } else if (typeof action !== 'string') {\n warn('Expected `action` arg to be a String.');\n } else {\n var command = \"\".concat(pluginName, \":\").concat(action);\n payload = payload || null;\n\n if (actionType && payload) {\n ga(command, actionType, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"actionType: \\\"\".concat(actionType, \"\\\" with payload: \").concat(JSON.stringify(payload)));\n }\n } else if (payload) {\n ga(command, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"with payload: \".concat(JSON.stringify(payload)));\n }\n } else {\n ga(command);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n }\n }\n }\n }\n }\n};\n/**\n * outboundLink:\n * GA outboundLink tracking\n * @param args.label {String} e.g. url, or 'Create an Account'\n * @param {function} hitCallback - Called after processing a hit.\n */\n\nexport function outboundLink(args, hitCallback, trackerNames) {\n if (typeof hitCallback !== 'function') {\n warn('hitCallback function is required');\n return;\n }\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!args || !args.label) {\n warn('args.label is required in outboundLink()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: 'Outbound',\n eventAction: 'Click',\n eventLabel: _format(args.label)\n };\n var safetyCallbackCalled = false;\n\n var safetyCallback = function safetyCallback() {\n // This prevents a delayed response from GA\n // causing hitCallback from being fired twice\n safetyCallbackCalled = true;\n hitCallback();\n }; // Using a timeout to ensure the execution of critical application code\n // in the case when the GA server might be down\n // or an ad blocker prevents sending the data\n // register safety net timeout:\n\n\n var t = setTimeout(safetyCallback, 250);\n\n var clearableCallbackForGA = function clearableCallbackForGA() {\n clearTimeout(t);\n\n if (!safetyCallbackCalled) {\n hitCallback();\n }\n };\n\n fieldObject.hitCallback = clearableCallbackForGA; // Send to GA\n\n send(fieldObject, trackerNames);\n } else {\n // if ga is not defined, return the callback so the application\n // continues to work as expected\n setTimeout(hitCallback, 0);\n }\n}\nexport var testModeAPI = TestModeAPI;\nexport default {\n initialize: initialize,\n ga: ga,\n set: set,\n send: send,\n pageview: pageview,\n modalview: modalview,\n timing: timing,\n event: event,\n exception: exception,\n plugin: plugin,\n outboundLink: outboundLink,\n testModeAPI: TestModeAPI\n};","export default function removeLeadingSlash(string) {\n if (string.substring(0, 1) === '/') {\n return string.substring(1);\n }\n\n return string;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : 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\nimport UnboundOutboundLink from './components/OutboundLink';\nimport * as Defaults from './core';\nvar initialize = Defaults.initialize;\nexport { initialize };\nvar addTrackers = Defaults.addTrackers;\nexport { addTrackers };\nvar ga = Defaults.ga;\nexport { ga };\nvar set = Defaults.set;\nexport { set };\nvar send = Defaults.send;\nexport { send };\nvar pageview = Defaults.pageview;\nexport { pageview };\nvar modalview = Defaults.modalview;\nexport { modalview };\nvar timing = Defaults.timing;\nexport { timing };\nvar event = Defaults.event;\nexport { event };\nvar exception = Defaults.exception;\nexport { exception };\nvar plugin = Defaults.plugin;\nexport { plugin };\nvar outboundLink = Defaults.outboundLink;\nexport { outboundLink };\nvar testModeAPI = Defaults.testModeAPI;\nexport { testModeAPI };\nUnboundOutboundLink.origTrackLink = UnboundOutboundLink.trackLink;\nUnboundOutboundLink.trackLink = Defaults.outboundLink;\nexport var OutboundLink = UnboundOutboundLink;\nexport default _objectSpread(_objectSpread({}, Defaults), {}, {\n OutboundLink: OutboundLink\n});","import { initAmpli } from \"./amplitude\";\nimport { initAppcues } from \"./appcues\";\nimport { initBeacon } from \"./beacon\";\nimport { initGA } from \"./google-analytics\";\n\nexport default function initProductTools() {\n if (process.env.NODE_ENV !== \"test\") {\n console.info(\"Initialising product tools \");\n initAmpli();\n initBeacon();\n initGA();\n initAppcues();\n }\n}\n","// Tracking libraries\nimport { ampli } from \"ampli\";\nimport { AnalyticsBrowser } from \"@segment/analytics-next\";\n\n// Redux\nimport { setAmpliLoaded } from \"store/slices/applicationSlice\";\nimport store from \"store\";\n\nexport function initAmpli() {\n ampli.load({\n disabled: window.location.hostname === \"localhost\",\n environment: process.env.REACT_APP_AMPLITUDE_ENV,\n });\n\n ampli.addEventMiddleware(({ event }) => {\n const { event_type, event_properties } = event;\n\n // Create Segment tracker\n const segment = AnalyticsBrowser.load({ writeKey: process.env.REACT_APP_SEGMENT_WRITE_KEY });\n segment.track(event_type, { ...event_properties, source_website: \"digital_identity\" });\n });\n\n store.dispatch(setAmpliLoaded(true));\n}\n","// Tracking\nimport { ampli } from \"ampli\";\n\nexport function initBeacon() {\n const BEACON_KEY = \"38fb96dc-9187-43f9-bc1c-a2efcd86f33e\";\n window.Beacon(\"init\", BEACON_KEY);\n\n // Docs: https://developer.helpscout.com/beacon-2/web/javascript-api/#usage\n window.Beacon(\"on\", \"open\", () => ampli.beaconClicked());\n window.Beacon(\"on\", \"close\", () => ampli.beaconClosed());\n window.Beacon(\"on\", \"article-viewed\", ({ id }) => ampli.beaconArticleViewed({ article_id: id }));\n window.Beacon(\"on\", \"email-sent\", () => ampli.beaconEmailSent());\n window.Beacon(\"on\", \"search\", ({ query }) => ampli.beaconSearched({ search_content: query }));\n}\n","import ReactGA from \"react-ga\";\n\nexport function initGA() {\n ReactGA.initialize(\"UA-00000000-00\");\n}\n","export function initAppcues() {\n if (window.Appcues) {\n try {\n window.Appcues.identify(undefined);\n } catch (error) {\n console.error(error);\n }\n }\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Route, Switch, useLocation } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet-async\";\n\n// Pages\nimport DefaultPage from \"pages/LoginOrRegisterPages/LoginOrRegisterPages\";\nimport LoggingOutPage from \"pages/LoggingOutPage/LoggingOutPage\";\nimport RegistrationPages from \"pages/RegistrationPages/RegistrationPages\";\nimport TwoFactorRegisterPages from \"pages/TwoFactorRegisterPages/TwoFactorRegisterPages\";\n\n// Tools\nimport initProductTools from \"./utils/productTools/index\";\nimport { capitalizeFirstLetter } from \"utils/helpers\";\nimport { createPageTitle } from \"utils/constants\";\n\n// Redux\nimport { useSelector } from \"react-redux\";\n\nexport default function App() {\n const [page, setPage] = useState(\"Octopus Investments\");\n const { pathname } = useLocation();\n const { isAmpliLoaded } = useSelector(({ application }) => application);\n\n useEffect(() => {\n if (pathname !== \"/\") {\n const appPage = capitalizeFirstLetter(pathname.split(\"/\").pop());\n setPage(appPage);\n }\n }, [pathname]);\n\n !isAmpliLoaded && initProductTools();\n\n return (\n <>\n \n {createPageTitle(page)}\n \n \n \n \n \n \n \n \n );\n}\n","import React from \"react\";\n\n// Layouts\nimport MainLayout from \"layouts/Main\";\n\n// Tools\nimport { ADVISER_PHONE, INVESTOR_PHONE } from \"utils/constants\";\n\n// Styles\nimport \"./AccountLockedPage.scss\";\n\nexport default function AccountLockedPage() {\n return (\n \n
\n

Your account is now locked

\n

\n For security, your account has been temporarily locked due to 3 failed login attempts.\n Please get in touch to reset your account.\n

\n

\n If you’re an investor please call {INVESTOR_PHONE}. If you’re an adviser please call{\" \"}\n {ADVISER_PHONE}.\n

\n
\n
\n );\n}\n","import PropTypes from \"prop-types\";\nimport { useSelector } from \"react-redux\";\n\nexport default function PermanentLockBoundary({ children = null, fallBack = null }) {\n const { isPermanentlyLocked } = useSelector(({ application }) => application);\n\n return isPermanentlyLocked ? fallBack : children;\n}\n\nPermanentLockBoundary.propTypes = {\n children: PropTypes.element.isRequired,\n fallBack: PropTypes.element,\n};\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","import React from \"react\";\n\n// Pages\nimport App from \"App\";\n\nimport { createRoot } from \"react-dom/client\";\n\nimport AccountLockedPage from \"pages/AccountLockedPage/AccountLockedPage\";\n\n// Components\nimport PermanentLockBoundary from \"components/PermanentLockBoundary/PermanentLockBoundary\";\n\n// Tools\nimport { HelmetProvider } from \"react-helmet-async\";\n\n// Router\nimport { BrowserRouter } from \"react-router-dom\";\n\n// Redux\nimport { Provider } from \"react-redux\";\nimport store from \"store\";\n\n// Get the current subdomain\nconst currentSubdomain = window.location.hostname.split(\".\")[0];\n\n// Define conditions to match against the current subdomain\nconst subdomainConditions = [\"identity-dev\", \"identity-st\", \"identity-uat\"];\n\n// Check if the current subdomain matches any condition\nif (subdomainConditions.includes(currentSubdomain)) {\n // Create a new meta tag\n const metaTag = document.createElement(\"meta\");\n metaTag.name = \"robots\";\n metaTag.content = \"noindex\";\n\n // Append the meta tag to the head element\n document.head.appendChild(metaTag);\n}\n\n// Get the root element\nconst container = document.getElementById(\"root\");\n\n// Create a root\nconst root = createRoot(container);\n\n// Initial render\nroot.render(\n \n \n \n \n }>\n \n \n \n \n \n ,\n);\n"],"names":["window","undefined","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","enumerize","arr","enums","i","length","toUpperCase","has","str1","str2","lowerize","indexOf","str","toLowerCase","trim","len","replace","substring","rgxMapper","ua","arrays","j","k","p","q","matches","match","regex","props","exec","this","call","test","strMapper","map","windowsVersionMap","ME","XP","Vista","RT","regexes","browser","cpu","device","engine","EDGE","os","UAParser","extensions","getResult","_ua","navigator","userAgent","_rgxmap","mergedRegexes","concat","extend","getBrowser","version","_browser","major","split","getCPU","_cpu","getDevice","_device","getEngine","_engine","getOS","_os","getUA","setUA","CPU","DEVICE","ENGINE","OS","exports","module","define","$","jQuery","Zepto","parser","get","set","result","prop","pTimeout","promise","timeout","Promise","resolve","reject","timeoutId","setTimeout","Error","then","val","clearTimeout","catch","invokeCallback","ctx","callback","delay","timeoutInMs","err","cb","log","error","stats","increment","CoreLogger","_logs","prototype","level","message","extras","time","Date","push","Object","defineProperty","flush","logs","formatted","reduce","line","__assign","json","JSON","stringify","key","_c","_b","toISOString","Math","random","_a","console","table","forEach","logEntry","ContextCancelation","options","retry","type","reason","CoreContext","event","id","logger","uuid","NullStats","attempts","_id","system","isSame","other","cancel","updateEvent","path","integrationName","integrations","dset","failedDelivery","_failedDelivery","setFailedDelivery","toJSON","metrics","ON_REMOVE_FROM_FUTURE","PriorityQueue","_super","maxAttempts","queue","seen","_this","future","__extends","items","_i","arguments","accepted","operation","updateAttempts","includes","sort","a","b","getAttempts","pushWithBackoff","item","attempt","params","minTimeout","factor","maxTimeout","Infinity","min","pow","backoff","filter","f","emit","Boolean","find","pop","shift","Emitter","plugin","name","start","getTime","hook","fn","sent","err_1","tryAsync","apply","done","gauge","ensure","newContext","CoreStats","metric","by","tags","value","timestamp","now","m","join","serialize","v","t","counter","e","_args","isString","obj","isNumber","isFunction","exists","isPlainObject","toString","slice","createDeferred","settled","_resolve","_reject","args","isSettled","callbacks","warned","maxListeners","warnIfPossibleMemoryLeak","warn","String","on","once","off","without","isOnline","isBrowser","onLine","isOffline","SEGMENT_API_HOST","Context","Stats","isServer","gracefulDecodeURIComponent","encodedURIComponent","decodeURIComponent","logError","remoteMetrics","RemoteMetrics","host","sampleRate","flushTimer","maxQueueSize","_d","protocol","_e","flushing_1","run_1","remoteMetric","versionType","formattedTags","acc","library","library_version","createRemoteMetric","getVersionType","send","payload","series","headers","url","fetch","body","method","initRemoteMetrics","recordIntegrationMetric","methodName","didError","n","r","s","XMLHttpRequest","o","u","ok","status","statusText","responseURL","text","responseText","parse","blob","Blob","response","clone","keys","entries","l","open","onload","getAllResponseHeaders","onerror","withCredentials","credentials","setRequestHeader","global","getGlobal","unfetch","globalThis","self","_globalAnalyticsKey","getGlobalAnalytics","setGlobalAnalyticsKey","setGlobalAnalytics","analytics","findScript","src","Array","document","querySelectorAll","loadScript","attributes","found","status_1","getAttribute","addEventListener","script","createElement","async","setAttribute","tag","getElementsByTagName","parentElement","insertBefore","unloadScript","remove","mergedOptions","cdnSettings","optionOverrides","overrides","integration","integrationSettings","settings","pWhile","condition","action","__awaiter","loop","actionResult","_globalCDN","analyticsScriptRegex","setGlobalCDNUrl","cdn","globalAnalytics","_cdn","getCDN","globalCdnUrl","getGlobalCDNUrl","cdnFromScriptTag","getCDNUrlFromScriptTag","getNextIntegrationsURL","loc","getItem","setItem","removeItem","localStorage","persisted","stored","mutex","onUnlock","lockKey","rawLock","lock","allowed","expired","PersistedPriorityQueue","itemsKey","seenKey","saved","lastSeen","__spreadArray","todo","items_1","existing","merged","values","persistItems","memory","persistSeen","toFacade","evt","fcd","Facade","Track","Identify","Page","Alias","Group","Screen","writable","_version","applyDestinationMiddleware","destination","middleware","applyMiddleware","nextCalled","returnedEvent","traverse","next","modifiedEvent","rawEvent","middleware_1","md","sourceMiddlewarePlugin","isLoaded","load","track","page","identify","alias","group","obj_case_1","__importDefault","require","trait","traits","properties","default","proto","zip","country","street","state","city","region","inherits_1","facade_1","dictionary","opts","previousId","field","from","userId","to","temp","hasOwnProperty","isArray","Delete","address_1","clone_1","is_enabled_1","new_date_1","isodate_traverse_1","raw","transform","proxy","fields","multi","one","ret","context","enabled","allEnabled","providers","active","anonymousId","sessionId","groupId","aliases","timezone","channel","ip","is_email_1","g","created","email","industry","employees","companyCreated","companyName","firstName","lastName","space","substr","uid","username","description","age","date","birthday","getFullYear","avatar","position","website","websites","phone","phones","address","gender","enumerable","alias_1","group_1","identify_1","track_1","page_1","screen_1","delete_1","matcher","string","disabled","Salesforce","category","title","referrer","fullName","productId","promotionId","cartId","checkoutId","paymentId","couponId","wishlistId","reviewId","orderId","sku","tax","price","total","repeat","coupon","shipping","discount","shippingMethod","paymentMethod","plan","subtotal","revenue","products","quantity","currency","query","parseFloat","isNaN","cents","isodate","input","strict","traverseObject","index","traverseArray","is","iso","numericKeys","offset","parseInt","getTimezoneOffset","millis","UTC","safeAdd","x","y","lsw","md5cmn","num","cnt","md5ff","c","d","md5gg","md5hh","md5ii","binlMD5","olda","oldb","oldc","oldd","binl2rstr","output","length32","fromCharCode","rstr2binl","length8","charCodeAt","rstr2hex","hexTab","charAt","str2rstrUTF8","unescape","encodeURIComponent","rawMD5","rstrMD5","rawHMACMD5","data","hash","bkey","ipad","opad","rstrHMACMD5","md5","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","Symbol","for","h","w","z","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","create","ctor","superCtor","super_","constructor","configurable","TempCtor","format","argIndex","framesToPop","milliseconds","seconds","toStr","multiple","normalize","normalizer","defaultNormalize","finished","normalizedKey","child","del","isarray","pathToRegexp","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","RegExp","res","tokens","defaultDelimiter","delimiter","escaped","prefix","capture","modifier","asterisk","partial","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","flags","encode","pretty","token","segment","TypeError","attachKeys","re","sensitive","end","route","endsWithDelimiter","groups","source","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","location","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","aa","ca","da","Set","ea","fa","ha","add","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","ra","sa","ta","pa","qa","oa","removeAttribute","setAttributeNS","xlinkHref","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","assign","Ma","stack","Na","Oa","prepareStackTrace","Reflect","construct","Pa","Qa","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","db","ownerDocument","eb","fb","selected","defaultSelected","gb","dangerouslySetInnerHTML","children","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","style","setProperty","tb","menuitem","area","base","br","col","embed","hr","img","keygen","link","meta","param","wbr","ub","vb","wb","xb","target","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","removeEventListener","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","Wb","memoizedState","dehydrated","Xb","Zb","sibling","current","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","locale","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","datetime","month","password","range","search","tel","week","me","ne","oe","listeners","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","href","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","defaultView","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","instance","listener","D","of","pf","qf","rf","sf","bind","passive","J","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","ref","_owner","_stringRef","refs","Mg","Ng","Og","Pg","Qg","Rg","implementation","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","_currentValue","bh","childLanes","ch","dependencies","firstContext","lanes","dh","eh","memoizedValue","fh","gh","hh","interleaved","ih","jh","kh","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","lh","mh","eventTime","lane","nh","K","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","tagName","zh","Ah","Bh","L","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","ReactCurrentDispatcher","Gh","Hh","M","N","O","Ih","Jh","Kh","Lh","P","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","Uh","Vh","Wh","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","Q","di","lastEffect","stores","ei","fi","gi","hi","ii","destroy","deps","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","R","Bi","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ci","Di","Ei","isMounted","_reactInternals","enqueueSetState","enqueueReplaceState","enqueueForceUpdate","Fi","shouldComponentUpdate","isPureReactComponent","Gi","updater","Hi","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ii","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Ji","digest","Ki","Li","Mi","WeakMap","Ni","Oi","Pi","Qi","componentDidCatch","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","ReactCurrentOwner","Xi","Yi","Zi","$i","aj","bj","cj","dj","baseLanes","cachePool","transitions","ej","fj","gj","hj","ij","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","jj","kj","pendingContext","lj","zj","Aj","Bj","Cj","mj","nj","oj","fallback","pj","qj","sj","dataset","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","xj","Dj","S","Ej","Fj","wasMultiple","suppressHydrationWarning","onClick","onclick","size","createElementNS","autoFocus","createTextNode","T","Gj","Hj","Ij","Jj","U","Kj","WeakSet","V","Lj","W","Mj","Nj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","_reactRootContainer","Wj","X","Xj","Yj","Zj","onCommitFiberUnmount","componentWillUnmount","ak","bk","ck","dk","ek","isHidden","fk","gk","display","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","Vk","lk","ceil","mk","nk","Y","Z","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","finishedWork","finishedLanes","Pk","timeoutHandle","Qk","Rk","Sk","Tk","Uk","mutableReadLanes","Bc","Oj","onCommitFiberRoot","mc","onRecoverableError","Wk","onPostCommitFiberRoot","Xk","Yk","$k","isReactComponent","pendingChildren","al","mutableSourceEagerHydrationData","bl","cache","pendingSuspenseBoundaries","dl","el","fl","gl","hl","il","yj","Zk","kl","reportError","ll","_internalRoot","ml","nl","ol","pl","rl","ql","unmount","unstable_scheduleHydration","splice","form","sl","usingClientEntryPoint","Events","tl","findFiberByHostInstance","bundleType","rendererPackageName","ul","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","vl","isDisabled","supportsFiber","inject","createPortal","cl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","hasElementType","hasMap","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","__self","__source","jsx","jsxs","setState","forceUpdate","escape","_status","_result","Children","count","toArray","only","Component","PureComponent","act","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","floor","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","objA","objB","compareContext","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","hasOwn","classNames","classes","arg","appendClass","parseValue","newClass","BUFFER","IDX","HEX","v4","out","extendStatics","setPrototypeOf","__proto__","__","__rest","propertyIsEnumerable","thisArg","_arguments","generator","fulfilled","step","rejected","__generator","_","label","trys","ops","verb","op","pack","ar","SuppressedError","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","getter","__esModule","leafPrototypes","getProto","ns","def","definition","chunkId","all","promises","miniCssF","Function","inProgress","dataWebpackPrefix","needAttach","scripts","charset","nc","onScriptComplete","prev","doneFns","head","toStringTag","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","_setPrototypeOf","_inheritsLoose","isAbsolute","pathname","spliceOne","list","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","isProduction","process","invariant","provided","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","createLocation","currentLocation","hashIndex","searchIndex","parsePath","_extends","decodeURI","URIError","resolvePathname","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","isActive","notifyListeners","_len","_key","canUseDOM","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","globalHistory","canUseHistory","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_ref","_window$location","createKey","transitionManager","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","locationsAreEqual$$1","allPaths","lastIndexOf","baseTag","querySelector","pushHashPath","nextPaths","clamp","lowerBound","upperBound","max","MAX_SIGNED_31_BIT_INT","commonjsGlobal","React","calculateChangedBits","contextProp","getUniqueId","_React$Component","emitter","handlers","handler","newValue","changedBits","createEventEmitter","nextProps","oldValue","objectIs","_Provider$childContex","_React$Component2","observedBits","_this2","onUpdate","_Consumer$contextType","createNamedContext","historyContext","Router","_isMounted","_pendingLocation","staticContext","computeRootMatch","isExact","cache$1","cacheLimit$1","cacheCount$1","matchPath","_options","_options$exact","_options$strict","_options$sensitive","matched","cacheKey","pathCache","regexp","compilePath$1","_compilePath","Route","context$1","computedMatch","_this$props","isEmptyChildren","createURL","staticHandler","noop","Switch","useLocation","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","FRAGMENT","rel","property","accesskey","class","contenteditable","contextmenu","itemprop","tabindex","reverse","cssText","toComponent","titleAttributes","bodyAttributes","htmlAttributes","noscriptTags","styleTags","linkTags","metaTags","scriptTags","prioritizeSeoTags","priorityMethods","noscript","instances","setHelmet","helmet","helmetInstances","encodeSpecialCharacters","helmetData","styleSheet","isEqualNode","oldTags","newTags","onChangeClientState","rendered","emitChange","defer","cancelAnimationFrame","requestAnimationFrame","init","mapNestedChildrenToProps","flattenArrayTypeChildren","arrayTypeChildren","newChildProps","nestedChildren","mapObjectTypeChildren","newProps","mapArrayTypeChildrenToProps","warnOnInvalidChildren","mapChildrenToProps","defaultTitle","titleTemplate","ReactReduxContext","batch","getBatch","nullListeners","notify","createSubscription","store","parentSub","unsubscribe","handleChangeWrapper","subscription","onStateChange","trySubscribe","addNestedSub","subscribe","first","clear","isSubscribed","createListenerCollection","notifyNestedSubs","tryUnsubscribe","getListeners","useIsomorphicLayoutEffect","contextValue","previousState","getState","useReduxContext","createStoreHook","useDefaultReduxContext","useStore","createDispatchHook","useDefaultStore","useDispatch","refEquality","createSelectorHook","selector","equalityFn","_useReduxContext","selectedState","contextSub","_useReducer","forceRender","latestSubscriptionCallbackError","latestSelector","latestStoreState","latestSelectedState","storeState","newSelectedState","checkForUpdates","newStoreState","_newSelectedState","useSelectorWithStoreAndSubscription","newBatch","useSelector","SvgAlertCircle","viewBox","fill","xmlns","fillRule","clipRule","SvgAlertTriangle","className","SvgArrowLeft","SvgArrowRight","COLORS","cyan","green","orange","red","navy","neutral","SvgCheck","SvgCheckCircle","SvgClose","SvgDollar","stroke","strokeLinecap","strokeLinejoin","DoNotDisturb","SvgEye","SvgEyeOff","InfoSolid","SvgInfo","PercentageLite","SterlingLite","__assign$2","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","abs$2","abs","from$1","replacement","indexof","charat","begin","strlen","sizeof","append$1","filter$2","column","character","characters","node$2","root","parent","siblings","copy","lift","peek","caret","token$1","delimit","whitespace","escaping","commenter","identifier","dealloc","parse$5","alloc","rule","rules","rulesets","pseudo","points","declarations","atrule","previous","variable","scanning","ampersand","reference","comment$1","declaration$1","ruleset","post","stringify$6","prefixer","combine","unitlessKeys","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","WebkitLineClamp","REACT_APP_SC_ATTR","SC_ATTR","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","freeze","theme","x$1","groupSizes","Uint32Array","indexOfGroup","insertRules","insertRule","clearGroup","deleteRule","getGroup","getRule","registerName","getTag","__webpack_nonce__","sheet","styleSheets","ownerNode","cssRules","nodes","childNodes","useCSSOMInjection","gs","names","server","registerId","reconstructWithOptions","allocateGSInstance","hasNameForId","clearNames","clearRules","clearTag","replaceAll","plugins","startsWith","endsWith","namespace","collection","rulesheet","o$1","shouldForwardProp","stylis","getName","isCss","styledComponentId","staticRulesId","isStatic","componentId","baseHash","baseStyle","generateAndInjectStyles","nt","ot","st","attrs","parentComponentId","componentStyle","foldedComponentIds","as","forwardedAs","_foldedDefaultProps","at","ct","lt","withConfig","ut","pt","dt","createStyles","removeStyles","renderStyles","ft","sizeOptions","sm","xl","rotate","Preloader","div","$buttonVariant","_ref2","$size","_ref3","_ref4","$platform","colors","white","loader","GlobalStyle","ANIMATION_DURATION","formatJs","formatCss","BREAKPOINTS","mobile","tablet","laptop","desktop","xs","xxl","DEFAULT_WINDOW_SIZE","calculateDevice","_ref5","isMobile","isTablet","isDesktop","MobileStyles","styles","TabletStyles","span","_ref6","$small","hexToRGBA","hex","alpha","escapeRegExp","stringToGoIntoTheRegex","abbrMap","cleanValue","_ref8","allowDecimals","allowNegativeValue","decimalSeparator","decimalsLimit","disableAbbreviations","groupSeparator","transformRawValue","rawValue","transformedValue","abbreviations","isNegative","prefixWithValue","preValue","withoutSeparators","reg","removeSeparators","withoutInvalidChars","removeInvalidChars","validChars","chars","valueOnly","letter","parsed","digits","abbr","multiplier","Number","parseAbbrValue","includeNegative","int","decimals","trimmedDecimals","getSuffix","_ref9","suffixReg","suffixMatch","formatValue","decimalScale","intlConfig","suffix","_value","replaceDecimalSeparator","Intl","NumberFormat","maximumFractionDigits","minimumFractionDigits","formatToParts","replaceParts","intlSuffix","includeDecimalSeparator","_ref10","disableGroupSeparators","_ref11","isNumber$1","colors$2","octopusOnlineTheme","primary","secondary","accent","warning","success","information","black","accordion","background","disabledFontColor","solid","hover","fontColor","border","iconColor","outline","subtle","underline","divider","card","calendar","boxShadow","focusBorderColor","textLabel","toolTip","toast","notification","indicator","icon","radio","select","supportingMessage","steps","inactive","tabs","checkbox","toggle","colors$1","idmTheme","idm","platformThemes","Theme","_ref13","Loader","_ref14","customSize","cs","platform","buttonVariant","rest","loaderClasses","$cs","Wrapper$z","VisuallyHidden","_ref15","buttonSize","fontSize","ButtonStyle","_ref16","$color","$variant","_ref17","_ref18","_ref19","_ref20","$customWidth","_ref21","$initMinWidth","_ref22","_ref36","$isLoading","_ref23","$hover","_ref24","_ref25","_ref26","$disabled","_ref27","UnderlineButton","_ref28","NonUnderlineStyles","_ref29","$isLabelString","_ref30","SolidButton","NonSolidButtonStyles","OutlineButton","SubtleButton","_ref31","Label$4","_ref32","$iconPosition","_ref33","_ref34","_ref35","Button","customWidth","iconLabel","iconPosition","initMinWidth","isLoading","handleClick","variant","combinedRef","platformStyles","buttonVariants","isUnderlineBtn","isLabelString","Wrapper","Wrapper$y","_ref37","$isInline","activeLinkColour","_ref38","$startIcon","$endIcon","iconPropsExist","startIconExists","_ref39","Link","_ref40","isInline","onLinkClick","startIcon","endIcon","showStartIcon","showEndIcon","linkClasses","alignPlacement","center","BannerStyles","_ref41","$status","SmallStyles","slideLeftStyles","_ref42","animationStyles","StyledNotification","_ref43","_ref44","_ref45","_ref46","$align","_ref47","$isHeightGreater","_ref48","_ref49","$type","_ref50","_ref51","CloseIconStyles","_ref52","_ref53","Notification","_ref54","align","closable","showDefaultIcon","showNotification","onClose","autoHideDuration","isHeightGreater","setIsHeightGreater","messageId","textBoxRef","notificationWrapperRef","notificationClasses","handleOnEscKey","_ref55","handleCloseOnEnter","_ref56","NotificationIcon","clientHeight","timer","role","onKeyDown","TRANSLATE_VALUES","down","right","Wrapper$x","_ref57","_ref58","_ref59","$direction","_ref60","_ref62","$showBackground","_ref63","_ref64","IconWrapper$1","MessageWrapper","SupportingMessage","_ref65","showBackground","showIcon","validationMsgClasses","iconClasses","ValidationIcon","variantOptions","_ref69","_ref70","_ref71","_ref72","_ref73","_ref75","$columns","_ref76","$noBorder","_ref77","$isFragment","_ref78","$isHidden","_ref80","$active","_ref81","borderWidth","borderStyle","elevate","Spacing$2","_ref83","$width","_ref84","$height","_ref85","$mb","_ref86","$mt","_ref87","_ref88","$removeBorder","_ref89","$active2","_ref90","_ref91","_ref92","$overflow","_ref93","_ref94","_ref96","$paddingSize","_ref97","TagStyle","_ref99","$showNotification","_ref100","_ref101","_ref102","_ref103","colourOptions","grey","bgc","blue","purple","tagColors","marginSizes","_ref104","Wrapper$r","_ref107","_ref108","$margin","Divider","_ref109","margin","weekdays","months","ordinal","utcOffset","year","ms","$L","utc","$u","$x","$offset","NaN","$y","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","startOf","endOf","isAfter","isBefore","unix","toDate","$locale","weekStart","$set","daysInMonth","round","subtract","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","diff","toUTCString","isDayjs","en","Ls","_getPrototypeOf","_isNativeReflectConstruct","_wrapNativeSuper","Class","_cache","_isNativeFunction","_construct","PolishedError","_Error","subClass","superClass","ReferenceError","_assertThisInitialized","colorToInt","convertToInt","hslToRgb","hue","saturation","lightness","convert","huePrime","chroma","secondComponent","lightnessModification","namedColorMap","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olive","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellow","yellowgreen","hexRegex","hexRgbaRegex","reducedHexRegex","reducedRgbaHexRegex","rgbRegex","rgbaRegex","hslRegex","hslaRegex","parseToRgb","normalizedColor","normalizedColorName","nameToHex","toFixed","_alpha","rgbMatched","rgbaMatched","hslMatched","rgbColorString","hslRgbMatched","hslaMatched","_rgbColorString","_hslRgbMatched","parseToHsl","rgbToHsl","reduceHexValue$1","numberToHex","colorToHex","convertToHex","hslToHex","rgb","rgba","firstValue","secondValue","thirdValue","fourthValue","rgbValue","isRgb","isRgba","isHsl","isHsla","toColorString","hsla","hsl","curried","combined","curry","guard","lowerBoundary","upperBoundary","degree","hslColor","amount","curriedLighten$1","curriedMix","weight","otherColor","parsedColor1","color1","parsedColor2","color2","alphaDelta","weight1","weight2","mix$1","parsedColor","percentage","NativeCheckboxStyle","FakeCheckboxStyle","_ref110","_ref111","_ref112","_ref113","NormalFakeCbStyle","_ref114","_ref115","_ref116","CheckIconStyle","MinusIconStyle","DisabledFakeCbStyle","_ref117","_ref118","CheckboxWrapper","_ref119","_ref120","_ref121","_ref122","_ref123","_ref124","_ref125","_ref126","_ref127","_ref128","_ref129","_ref130","_ref131","_ref132","Checkbox","isChecked","onChange","FakeCheckbox","checkboxClasses","checkboxId","checkMode","htmlFor","tabIndex","spacing","borderRadius","marginBottom","Wrapper$q","_ref133","$borderRadius","_ref134","ListItemWrapper","_ref135","$spacing","_ref136","_ref137","$hasClickHandler","_ref138","$alternateBackground","$index","$showItemSeparation","$isSelected","_ref139","$marginBottom","_ref140","$showHoverBorder","_ref141","ListContent","ListItem","_ref142","alternateBackground","handleItemSelect","handleOnItemClick","leftDisplayProperties","totalItems","rightDisplayProperties","showHoverBorder","showItemSeparation","isSelected","showCheckbox","showDivider","dateProperties","dateFormat","onItemSelect","onItemClicked","formatProperty","dayjs","renderProperties","item2","_ref143","_ref144","$maxHeight","_ref145","$allowScroll","_ref146","_ref147","_ref148","_ref149","SelectStyle","_ref150","_ref151","$error","_ref152","_ref153","OptionStyle$1","_ref154","_ref155","$isPlaceholder","_ref156","OptionsStyle","_ref157","_ref158","getSize","innerHeight","innerWidth","dimensions","useWindowSize","windowSize","setWindowSize","handleResize","wait","immediate","_len3","_key3","debounce","Wrapper$n","_ref161","_ref162","breakpoint","responsiveDesktopFirst","Tooltip","_ref163","content","onTooltipVisible","placement","setPlacement","tooltipRef","isOpen","windowWidth","hideTootleTip","tooltipCurrent","classList","getBoundingClientRect","currentLeft","getComputedStyle","getPropertyValue","browserOffset","tooltipClasses","onMouseEnter","handleOnMouseEnter","onMouseLeave","useMediaQuery","getMatches","query2","matchMedia","setMatches","handleChange","breakpoints","TextLabelStyle","_ref164","TextStyle","_ref165","$textColor","LabelStyle","TooltipLabelStyle","_ref166","TextWrapperStyle","_ref167","$textIconColor","TextLabel","_ref168","textColor","textIcon","tooltipProps","isSmDevice","textLabelClasses","textStyleProps","labelTextOrTooltip","_ref169","$activeLabel","$disabledLabel","_ref170","_ref171","$isActive","section","_ref173","_ref174","_ref175","_ref176","_ref177","_ref178","_ref179","_ref180","tr","_ref181","_ref182","_ref183","_ref184","_ref185","_ref186","_ref187","_ref188","_ref189","$activeRow","_ref190","$hasClickAction","_ref191","_ref192","_ref196","decodeDataHtml","Uint16Array","decodeDataXml","replaceCodePoint","fromCodePoint","decodeMap","codePoint","__createBinding","k2","desc","__setModuleDefault","__importStar","mod","decodeXML","decodeHTMLStrict","decodeHTMLAttribute","decodeHTML","determineBranch","EntityDecoder","DecodingMode","BinTrieFlags","decodeCodePoint","xmlDecodeTree","htmlDecodeTree","decode_data_html_js_1","decode_data_xml_js_1","decode_codepoint_js_1","decode_codepoint","CharCodes","decode_codepoint_js_2","EntityDecoderState","ZERO","NINE","isEntityInAttributeInvalidEnd","EQUALS","UPPER_A","UPPER_Z","LOWER_A","LOWER_Z","isAsciiAlphaNumeric","decodeTree","emitCodePoint","errors","EntityStart","consumed","treeIndex","excess","decodeMode","Strict","startEntity","write","NUM","NumericStart","stateNumericStart","NamedEntity","stateNamedEntity","NumericDecimal","stateNumericDecimal","NumericHex","stateNumericHex","LOWER_X","addToNumericResult","digitCount","startIdx","UPPER_F","LOWER_F","emitNumericEntity","lastCp","expectedLength","absenceOfDigitsInNumericCharacterReference","SEMI","missingSemicolonAfterCharacterReference","validateNumericCharacterReference","valueLength","VALUE_LENGTH","Attribute","emitNotTerminatedNamedEntity","emitNamedEntityData","getDecoder","decoder","lastIndex","nodeIdx","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","lo","mid","midVal","htmlDecoder","xmlDecoder","Legacy","QuoteType","State","decode_js_1","decode","isWhitespace","Space","NewLine","Tab","FormFeed","CarriageReturn","isEndOfTagSection","Slash","Gt","Zero","Nine","Sequences","Cdata","Uint8Array","CdataEnd","CommentEnd","ScriptEnd","StyleEnd","TitleEnd","Tokenizer","cbs","xmlMode","decodeEntities","Text","buffer","sectionStart","isSpecial","running","currentSequence","sequenceIndex","trieIndex","trieCurrent","entityResult","entityExcess","entityTrie","reset","chunk","finish","pause","resume","getIndex","getSectionStart","stateText","Lt","fastForwardTo","ontext","BeforeTagName","Amp","BeforeEntity","stateSpecialStartSequence","isEnd","InTagName","stateInTagName","stateInSpecialTag","endOfText","actualIndex","stateInClosingTagName","stateCDATASequence","InCommentLike","InDeclaration","stateInDeclaration","stateInCommentLike","oncdata","oncomment","isTagStartChar","LowerA","LowerZ","UpperA","UpperZ","isASCIIAlpha","startSpecial","sequence","SpecialStartSequence","stateBeforeTagName","ExclamationMark","BeforeDeclaration","Questionmark","InProcessingInstruction","lower","BeforeSpecialS","BeforeClosingTagName","onopentagname","BeforeAttributeName","stateBeforeAttributeName","stateBeforeClosingTagName","InClosingTagName","InSpecialComment","onclosetag","AfterClosingTagName","stateAfterClosingTagName","onopentagend","InSpecialTag","InSelfClosingTag","InAttributeName","stateInSelfClosingTag","onselfclosingtag","stateInAttributeName","Eq","onattribname","AfterAttributeName","stateAfterAttributeName","BeforeAttributeValue","onattribend","NoValue","stateBeforeAttributeValue","DoubleQuote","InAttributeValueDq","SingleQuote","InAttributeValueSq","InAttributeValueNq","stateInAttributeValueNoQuotes","handleInAttributeValue","quote","onattribdata","Double","Single","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","Unquoted","stateBeforeDeclaration","OpeningSquareBracket","CDATASequence","Dash","BeforeComment","ondeclaration","stateInProcessingInstruction","onprocessinginstruction","stateBeforeComment","stateInSpecialComment","stateBeforeSpecialS","stateBeforeEntity","BeforeNumericEntity","InNamedEntity","stateInNamedEntity","emitNamedEntity","masked","allowLegacyEntity","Semi","entityStart","emitPartial","stateBeforeNumericEntity","LowerX","InHexEntity","InNumericEntity","stateInNumericEntity","stateInHexEntity","UpperF","LowerF","isHexDigit","cleanup","shouldContinue","handleTrailingData","onend","endIndex","cp","onattribentity","ontextentity","__createBinding$1","__setModuleDefault$1","__importStar$1","Parser$3","Parser","Tokenizer_js_1","formTags","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","Parser$2","startIndex","openTagStart","tagname","attribname","attribvalue","attribs","foreignContext","buffers","bufferOffset","writeIndex","ended","lowerCaseTagNames","lowerCaseTags","lowerCaseAttributeNames","tokenizer","onparserinit","getSlice","isVoidElement","emitOpenTag","impliesClose","onopentag","endOpenTag","isImplied","_f","pos","closeCurrentTag","recognizeSelfClosing","isOpenImplied","onattribute","getInstructionName","oncommentend","_g","_h","_j","_k","recognizeCDATA","oncdatastart","oncdataend","onreset","parseComplete","shiftBuffer","parseChunk","ElementType","Doctype","CDATA","Tag","Style","Script","Comment","Directive","Root","isTag","elem","__assign$1","node$1","cloneNode","hasChildren","isDocument","isDirective","isComment","isText","isCDATA","Document","NodeWithChildren","ProcessingInstruction","DataNode","Node","domelementtype_1$1","lib$3","Node$5","recursive","cloneNode$1","Comment$5","Document$4","cloneChildren","clone_2","clone_3","instruction","sourceCodeLocation","childs","__exportStar","DomHandler","domelementtype_1","node_js_1","defaultOpts","withStartIndices","withEndIndices","elementCB","dom","tagStack","lastNode","handleCallback","addNode","restoreDiff","encodeHtml","escapeText","escapeAttribute","escapeUTF8","encodeXML","getCodePoint","xmlReplacer","xmlCodeMap","lastIdx","getEscaper","codePointAt","__importDefault$1","encodeNonAsciiHTML","encodeHTML","encode_html_js_1","escape_js_1","_escape","htmlReplacer","encodeHTMLTrieRe","regExp","nextChar","decodeXMLStrict","decodeHTML5Strict","decodeHTML4Strict","decodeHTML5","decodeHTML4","encodeHTML5","encodeHTML4","decodeStrict","EncodingMode","EntityLevel","encode_js_1","decode$1","XML","UTF8","ASCII","escape_js_2","encode_js_2","decode_js_2","foreignNames","attributeNames","elementNames","lib$1","entities_1","lib","foreignNames_js_1","unencodedElements","replaceQuotes","singleTag","renderNode","renderComment","renderCdata","foreignModeIntegrationPoints","foreignElements","encodeEntities","emptyAttrs","formatAttributes","selfClosingTags","renderTag","renderText","stringify$5","innerText","getText","getInnerHTML","getOuterHTML","domhandler_1$3","lib$4","dom_serializer_1","traversal","prevElementSibling","nextElementSibling","hasAttrib","getAttributeValue","getSiblings","getParent","getChildren","domhandler_1$2","removeElement","childsIndex","manipulation","prepend","prependChild","append","replaceElement","currNext","querying","findAll","existsOne","findOne","findOneChild","domhandler_1$1","recurse","limit","nodeStack","indexStack","legacy","getElementsByTagType","getElementById","getElements","testElement","domhandler_1","querying_js_1","Checks","tag_name","tag_type","tag_contains","getAttribCheck","attrib","combineFuncs","compileTest","funcs","uniqueSort","DocumentPosition","removeSubsets","nodeA","nodeB","aParents","bParents","maxIdx","DISCONNECTED","sharedParent","aSibling","bSibling","FOLLOWING","CONTAINED_BY","PRECEDING","CONTAINS","ancestor","relative","feeds","getFeed","stringify_js_1","legacy_js_1","doc","feedRoot","getOneElement","isValidFeed","feed","entry","media","getMediaElements","addConditionally","pubDate","updated","getAtomFeed","getRssFeed","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","medium","isDefault","MEDIA_KEYS_STRING_1","MEDIA_KEYS_INT_1","expression","helpers","DomUtils","parseFeed","createDomStream","parseDOM","parseDocument","DefaultHandler","Parser_js_1","Parser_js_2","domhandler_2","elementCallback","domutils_1","lib$2","domutils_2","parseFeedDefaultOptions","isObject$1","isPlainObject$2","prot","isMergeableObject","isNonNullObject","stringValue","REACT_ELEMENT_TYPE","isReactElement","cloneUnlessOtherwiseSpecified","deepmerge$1","defaultArrayMerge","getKeys","getEnumerableOwnPropertySymbols","propertyIsOnObject","mergeObject","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","cjs","factory","parseSrcset","isSpace","collectCharacters","regEx","descriptors","currentDescriptor","inputLength","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","candidates","parseDescriptors","tokenize","lastChar","intVal","floatVal","pError","candidate","isColorSupported","bold","dim","italic","inverse","hidden","strikethrough","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","picocolors_browser","createColors","pico","picocolors_browserExports","terminalHighlight$1","require$$2","CssSyntaxError","file","super","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","css","mark","aside","lines","maxWidth","gutter","cssSyntaxError","CssSyntaxError$3","symbols","isClean","my","DEFAULT_RAW","after","beforeClose","beforeComment","beforeDecl","beforeOpen","beforeRule","colon","commentLeft","commentRight","emptyBody","indent","semicolon","builder","raws","afterName","between","beforeAfter","detect","buf","depth","before","comment","decl","important","own","rawCache","walk","rawBeforeClose","rawBeforeComment","walkComments","rawBeforeDecl","walkDecls","rawBeforeOpen","rawBeforeRule","rawColon","rawEmptyBody","rawIndent","rawSemicolon","ownSemicolon","stringifier","Stringifier$2","Stringifier$1","stringify$4","stringify_1","isClean$2","my$2","CssSyntaxError$2","Stringifier","stringify$3","cloned","defaults","addToError","postcssNode","insertAfter","cleanRaws","keepBetween","cloneAfter","cloneBefore","rangeBy","getProxyProcessor","toProxy","markDirty","positionBy","stringRepresentation","positionInside","word","defaultType","replaceWith","bookmark","foundSelf","_len4","_key4","inputs","fixed","emitInputs","inputsNextIndex","inputId","proxyCache","Proxy","proxyOf","Node$4","Node$3","declaration","Declaration$4","nonSecure","nanoid","customAlphabet","alphabet","defaultSize","SourceMapConsumer","SourceMapConsumer$2","SourceMapGenerator","SourceMapGenerator$2","existsSync","readFileSync","dirname","dirname$1","loadAnnotation","inline","startWith","annotation","loadMap","mapFile","consumer","consumerCache","decodeInline","lastMatch","Buffer","atob","encoding","getAnnotationURL","sourceMapString","isMap","mappings","_mappings","sections","comments","loadFile","fromSourceMap","prevPath","withContent","sourcesContent","previousMap","PreviousMap$2","SourceMapConsumer$1","SourceMapGenerator$1","fileURLToPath","pathToFileURL","pathToFileURL$1","resolve$1","terminalHighlight","CssSyntaxError$1","PreviousMap$1","fromOffsetCache","sourceMapAvailable$1","pathAvailable$1","hasBOM","mapResolve","fromOffset","origin","lastLine","lineToIndex","sourceRoot","fromUrl","originalPositionFor","URL","sourceContentFor","Input$5","registerInput","sep","Input$4","sourceMapAvailable","pathAvailable","mapGenerator","cssString","mapOpts","originalCSS","usesFileUrls","absolute","memoizedFileURLs","memoizedPaths","memoizedURLs","addAnnotation","toBase64","outputFile","eol","applyPrevMaps","toUrl","applySourceMap","clearAnnotation","generate","generateMap","generateString","ignoreInvalidMapping","addMapping","generated","original","isSourcesContent","setSourcesContent","isAnnotation","noSource","mapping","sourcePath","cached","previousMaps","already","toFileUrl","setSourceContent","btoa","fileURL","Node$2","Comment$4","parse$4","Rule$4","AtRule$4","Root$6","isClean$1","my$1","Declaration$3","Comment$3","Node$1","cleanSource","markDirtyUp","Container","_len5","_key5","each","getIterator","indexes","every","lastEach","_len6","_key6","_len7","_key7","exist","existIndex","sample","processed","rebuild","_len8","_key8","removeAll","replaceValues","fast","walkAtRules","walkRules","Container$8","registerParse","dependant","registerRule","registerAtRule","registerRoot","container","LazyResult$4","Processor$3","Container$7","toResult","Document$3","registerLazyResult","registerProcessor","document$1","opt","Warning$2","Warning$1","processor","messages","lastPlugin","postcssPlugin","warnings","Result$3","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","Container$6","atRule","AtRule$3","LazyResult$3","Processor$2","Container$5","ignore","Root$5","list$2","comma","separators","inQuote","prevQuote","list_1","Container$4","list$1","selectors","Rule$3","Declaration$2","escapePos","currentToken","ignoreErrors","returned","unclosed","what","back","endOfFile","nextToken","ignoreUnclosed","controlChar","Comment$2","AtRule$2","Root$4","Rule$2","SAFE_COMMENT_NEIGHBOR","empty","spaces","createTokenizer","unnamedAtrule","brackets","getPosition","spacesAndCommentsFromEnd","spacesAndCommentsFromStart","checkMissedSemicolon","founded","doubleColon","customProperty","findLastWithPosition","unknownWord","firstSpaces","precheckMissedSemicolon","stringFrom","spacesFromEnd","hasWord","emptyRule","unexpectedClose","endFile","unclosedBlock","freeSemicolon","bracket","unclosedBracket","clean","lastTokenType","Container$3","Input$3","parse$3","parse_1","MapGenerator$1","stringify$2","Container$2","Document$2","Result$2","parse$2","Root$3","TYPE_TO_CLASS_NAME","PLUGIN_PROPS","AtRule","AtRuleExit","CommentExit","Declaration","DeclarationExit","DocumentExit","Once","OnceExit","prepare","RootExit","Rule","RuleExit","NOT_VISITORS","CHILDREN","isPromise","getEvents","toStack","events","eventIndex","visitorIndex","visitors","cleanMarks","postcss$1","LazyResult","stringified","syntax","postcss","processing","runAsync","onRejected","finally","onFinally","getAsyncError","handleError","postcssVersion","prepareVisitors","hasListener","runOnRoot","visitTick","visitor","roots","subRoot","sync","walkSync","visitSync","onFulfilled","visit","LazyResult$2","registerPostcss","lazyResult","MapGenerator","stringify$1","parse$1","Result$1","_processor","_css","_opts","_map","generatedCSS","generatedMap","_root","noWorkResult","NoWorkResult$1","NoWorkResult","LazyResult$1","Document$1","Root$2","normalized","use","Processor$1","Declaration$1","PreviousMap","Comment$1","AtRule$1","Input$2","Root$1","Rule$1","fromJSON$1","ownInputs","inputHydrated","fromJSON_1","Container$1","Processor","fromJSON","Warning","Result","Input$1","_len9","_key9","initializer","warningPrinted","creator","LANG","transformer","processOpts","pluginOpts","Input","postcss_1","htmlparser","lib$5","escapeStringRegexp","deepmerge","parseSrcsetExports","postcssParse","mediaTags","vulnerableTags","VALID_HTML_ATTRIBUTE_NAME","sanitizeHtml","html","_recursing","tempResult","Frame","that","tagPosition","mediaChildren","updateParentNodeText","updateParentNodeMediaChildren","htmlParserDefaults","tagAllowed","allowedTags","allowVulnerableTags","nonTextTagsArray","nonTextTags","allowedAttributesMap","allowedAttributesGlobMap","allowedAttributes","globRegex","allowedClassesMap","allowedClassesGlobMap","allowedClassesRegexMap","allowedClasses","transformTagsMap","transformTagsAll","skipMap","transformMap","skipText","skipTextDepth","transformTags","transFun","simpleTransform","addedText","initializeState","enforceHtmlBoundary","frame","skip","hasText","transformedTag","disallowedTagsMode","isEmptyObject","nestingLimit","allowedScriptHostnames","allowedScriptDomains","allowedEmptyAttributes","nonBooleanAttributes","passedAllowedAttributesMapCheck","splitStrArray","allowedSchemesAppliedToAttributes","naughtyHref","parseUrl","allowedHostname","hostname","allowedDomain","domain","isRelativeUrl","allowIframeRelativeUrls","allowedIframeHostnames","allowedIframeDomains","evil","parsedSrcset","allowedSpecificClasses","allowedWildcardClasses","allowedSpecificClassesGlob","allowedSpecificClassesRegex","allowedClassesGlobs","filterClasses","parseStyleAttributes","filteredAST","abstractSyntaxTree","allowedStyles","astRules","selectedRule","allowedDeclarationsList","attributeObject","regularExpression","filterDeclarations","filterCss","extractedAttributes","attrObject","stringifyStyleAttributes","escapeHtml","selfClosing","textFilter","lastFrame","exclusiveFilter","firstIndex","allowProtocolRelative","scheme","allowedSchemesByTag","allowedSchemes","allowedGlobs","clss","glob","newTagName","newAttribs","merge","elementTagFontSize","h1","h2","h3","h4","buttonGroupGap","_ref200","$elementTag","gapSize","_ref202","_ref203","_ref204","_ref205","fieldset","_ref207","legend","_ref208","$gap","_ref209","$inline","displayProperty","Wrapper$i","_ref213","$labelPosition","InputWrapper","_ref214","_ref215","_ref216","_ref217","_ref218","_ref219","$iconExists","_ref220","_ref221","_ref222","_ref223","_ref224","Label$2","_ref225","setMargin","_ref226","_ref227","InputFieldIcon","_ref228","_ref229","_ref230","ValidationIconWrapper","InputField","_ref231","errorId","hideLabel","labelPosition","maxLength","onBlur","onFocus","placeholder","required","showErrorIcon","handleInputChange","useInput","dirty","setDirty","toggleShowPassword","setToggleShowPassword","getType","isPasswordField","inputIcon","iconPropExists","inputFieldClasses","autoComplete","handleIconClick","_ref232","_ref233","_ref234","hookCallback","hooks","isObject","hasOwnProp","isObjectEmpty","isUndefined","isDate","arrLen","createUTC","createLocalOrUTC","getParsingFlags","_pf","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","parsedDateParts","era","rfc2822","weekdayMismatch","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","_isValid","createInvalid","fun","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","localeData","removeFormattingTokens","formatMoment","expandFormat","mom","makeFormatFunction","replaceLongDateFormatTokens","longDateFormat","dates","days","day","weekday","isoweekdays","isoweekday","DDD","dayofyears","dayofyear","hours","hour","millisecond","minutes","minute","quarters","quarter","second","weekyears","weekyear","GG","isoweekyears","isoweekyear","weeks","isoweeks","isoweek","years","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","isoWeekday","dayOfYear","weekYear","isoWeekYear","isoWeek","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","match1to2NoLeadingZero","match1to2HasZero","addRegexToken","strictRegex","isStrict","getParseRegexForToken","regexEscape","p1","p2","p3","p4","unescapeFormat","absFloor","toInt","argumentForCoercion","coercedNumber","isFinite","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","isLeapYear","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","parseTwoDigitYear","getSetYear","makeGetSet","unit","keepTime","set$1","isUTC","getUTCMilliseconds","getUTCSeconds","getUTCMinutes","getUTCHours","getUTCDate","getUTCDay","getUTCMonth","getUTCFullYear","setUTCMilliseconds","setMilliseconds","setUTCSeconds","setSeconds","setUTCMinutes","setMinutes","setUTCHours","setHours","setUTCDate","setDate","setUTCFullYear","setFullYear","modMonth","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","setUTCMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortP","longP","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","createUTCDate","firstWeekOffset","dow","doy","fwd","dayOfYearFromWeeks","resYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","isPM","_meridiem","pos1","pos2","getSetHour","globalLocale","baseConfig","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","past","ss","mm","ww","MM","yy","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","isLocaleNameSane","_abbr","getSetGlobalLocale","getLocale","defineLocale","_config","parentLocale","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","preprocessRFC2822","monthStr","dayStr","hourStr","minuteStr","secondStr","extractFromRFC2822Strings","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","_useUTC","currentDateArray","weekdayOverflow","curWeek","createLocal","_week","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","configFromObject","configFromInput","createFromConfig","prototypeMin","prototypeMax","pickBy","moments","ordering","Duration","duration","unitHasDecimal","orderLen","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","separator","sign","offsetFromString","chunkOffset","cloneWithOffset","model","setTime","local","getDateOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","positiveMomentsDifference","momentsDifference","inp","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","isMomentInput","arrayTest","dataTypeTest","isNumberOrStringArray","objectTest","propertyTest","propertyLen","isMomentInputObject","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","erasName","erasAbbr","erasNarrow","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","preParsePostFormat","formats","isCalendarSpec","sod","calendarFormat","asFloat","zoneDelta","startOfDate","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","getPrioritizedUnits","prioritizedLen","toObject","keepOffset","inspect","zone","isLocal","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","dir","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","_eras","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","posNegDuration","relativeTime$1","toIsoString","setHookCallback","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","_ref237","$validationError","zero","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","RangeError","toOrdinal","toWords","toWordsOrdinal","numberToWords","_ref239","_ref240","_ref242","_ref243","_ref244","_ref245","_ref246","_ref247","_ref248","_ref249","_ref250","_ref253","_ref254","_ref255","_ref256","_ref257","_ref258","_ref259","_ref260","_ref261","_ref262","_ref263","_ref264","_ref265","_ref266","_ref267","_ref268","useFormattedInputHandlers","_ref270","fixedDecimalLength","inputRef","localeConfig","maskValue","onKeyUp","onValueChange","userMaxLength","userValue","formatValueOptions","cleanValueOptions","formattedStateValue","stateValue","setStateValue","showMask","setShowMask","changeCount","setChangeCount","lastKeyStroke","setLastKeyStroke","cursor","setCursor","processChange","cursorPosition","_ref12","modifiedValue","splitValue","repositionCursor","numberValue","formattedValue","getPrefix","newCursor","setSelectionRange","handleOnKeyUp","suffix2","handleOnKeyDown","currentValue","fixedLength","handleOnBlur","name2","fixedDecimals","fixedDecimalValue","padTrimValue","handleOnFocus","handleOnChange","getRenderValue","FormattedWrapper","IconWrapper","_ref272","$iconType","InputStyles","_ref273","_ref274","_ref275","_ref276","_ref277","iconMapping","dollar","pound","CustomInput","customInput","inputProps","FormattedInput","_ref278","_decimalSeparator","errorIconInline","errorMessage","_groupSeparator","customIcon","iconType","Icon","curr","currencySymbol","getLocaleConfig","inputMode","byteToHex","crypto","randomUUID","_ref279","$absolutePosition","_ref280","OptionStyle","_ref285","NativeRadio","_ref286","_ref287","CustomRadio","_ref291","_ref292","_ref293","_ref294","_ref295","_ref296","_ref297","Wrapper$c","_ref298","_ref299","_ref300","_ref301","Radio","_ref302","radioClasses","labelId","Spacing$1","Spacing","_ref303","_ref304","_ref312","_ref313","_ref314","_ref315","_ref316","_ref317","_ref318","alignPlacements","justifyPlacements","around","getWidth","Wrapper$8","_ref320","_ref321","_ref322","$container","_ref323","$flexWrap","_ref324","$item","_ref325","_ref326","$justify","_ref327","$border","$flex","$flexGrow","_ref328","$xl","_ref329","$lg","_ref330","$md","_ref331","$sm","_ref332","$xs","_ref333","$flexFull","_ref334","FlexBox","_ref335","flexFull","flexWrap","gap","justify","mt","gridClasses","$xxl","BorderRadius","GAP","_ref336","_ref337","_ref338","$rounded","_ref339","$fit","_ref340","_ref343","BUTTON_SIZE","FONT_SIZE","PaginationButton","nav","_ref346","_ref347","$position","_ref348","_ref349","_ref350","_ref351","_ref352","TabStyle","_ref353","$isCurrent","_ref354","_ref355","_ref356","_ref357","_ref358","_ref359","_ref362","_ref363","$activeStep","_ref364","_ref365","$clickable","_ref370","_ref371","$side","side","handleSideBackground","_ref372","_ref373","_ref374","_ref375","_ref376","_ref377","backgroundColor","_ref378","_ref379","_ref383","$anchor","setAnchor","_ref384","_ref385","$opened","_ref386","_ref387","_ref388","closeButtonPosition","_ref389","_ref392","ModalBackground","_ref393","$backgroundColor","ModalContent","Modal","_ref394","descriptionId","handleCloseModal","showCloseIcon","showModal","closeOnEscape","modalRef","modalClasses","createPageTitle","VALIDATION_ERRORS","emailExists","emptyField","passwordMatch","wrongCode","wrongPattern","SYSTEM_ERRORS","MFA_AUTH_CODE_TOOLTIP","ADVISER_PHONE","_jsx","INVESTOR_PHONE","AccountLocked","isPermanentlyLocked","isTemporaryLocked","application","_jsxs","nn","rn","tn","revocable","revoke","ownKeys","getOwnPropertyDescriptors","deleteProperty","un","produce","produceWithPatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","an","_typeof","toPropertyKey","toPrimitive","_defineProperty","_objectSpread2","defineProperties","formatProdErrorMessage","$$observable","observable","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observer","observeState","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","compose","middlewares","_dispatch","middlewareAPI","chain","_objectSpread","createThunkMiddleware","extraArgument","thunk","withExtraArgument","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","__REDUX_DEVTOOLS_EXTENSION__","baseProto","createAction","prepareAction","actionCreator","prepared","__spreadValues","MiddlewareArray","species","EnhancerArray","freezeDraftable","isDraftable","createNextState","curryGetDefaultMiddleware","middlewareArray","immutableCheck","serializableCheck","actionCreatorCheck","isBoolean","thunkMiddleware","getDefaultMiddleware","executeReducerBuilderCallback","builderCallback","defaultCaseReducer","actionsMap","actionMatchers","addCase","typeOrActionCreator","addMatcher","addDefaultCase","createSlice","_reducer","initialState","reducerNames","sliceCaseReducersByName","sliceCaseReducersByType","actionCreators","buildReducer","extraReducers","finalCaseReducers","mapOrBuilderCallback","getInitialState","finalActionMatchers","finalDefaultCaseReducer","isStateFunction","frozenInitialState_1","caseReducers","cr","caseReducer","isDraft2","isDraftable2","createNextState2","draft","createReducer","actionMatchers_1","reducerName","prepareCallback","maybeReducerWithPrepare","actionKey","getType2","actions","commonProperties","RejectWithValue","FulfillWithMeta","miniSerializeError","simpleError","commonProperties_1","createAsyncThunk","createAsyncThunk2","typePrefix","payloadCreator","requestId","__spreadProps","requestStatus","serializeError","rejectedWithValue","aborted","AC","AbortController","class_1","signal","onabort","throwIfAborted","abort","extra","abortReason","idGenerator","abortController","promise2","__async","conditionResult","abortedPromise","getPendingMeta","race","rejectWithValue","fulfillWithValue","finalAction","dispatchConditionRejection","unwrap","unwrapResult","withTypes","alm","createQueueWithTimer","isBrowserEnv","enableES5","singleMatcher","multiMatcher","decodeComponents","components","decodeUriComponent","encodedURI","replaceMap","customDecodeURIComponent","splitOnFirst","separatorIndex","includeKeys","predicate","isNullOrUndefined","strictUriEncode","encodeFragmentIdentifier","validateArrayFormatSeparator","decodeComponent","keysSorter","removeHash","hashStart","parseNumbers","parseBooleans","extract","queryStart","arrayFormat","arrayFormatSeparator","formatter","accumulator","isEncodedArray","arrayValue","flat","parserForArrayFormat","parameter","parameter_","key2","value2","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","url_","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryString","getHash","urlObjectForFragmentEncode","pick","exclude","exclusionFilter","ApplicationContextProviderImpl","getApplicationContext","versionName","language","getLanguage","deviceModel","languages","EventBridgeImpl","logEvent","receiver","setEventReceiver","isEqual","obj1","obj2","typeA","primitive_1","isArrayA","isArrayB","sorted1","sorted2","result_1","ownProps","resArray","IdentityStoreImpl","identity","userProperties","editIdentity","actingUserProperties","actingIdentity","setUserId","setDeviceId","deviceId","setUserProperties","setOptOut","optOut","updateUserProperties","actingProperties","commit","setIdentity","getIdentity","originalIdentity","addIdentityListener","removeIdentityListener","safeGlobal","AnalyticsConnector","identityStore","eventBridge","applicationContextProvider","getInstance","instanceName","enumerableOnly","sym","_classCallCheck","Constructor","_defineProperties","_toPropertyKey","_createClass","protoProps","staticProps","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","minLen","hint","prim","_toPrimitive","Constants","utftext","c1","c2","GlobalScope","Base64","_keyStr","_encode","chr1","chr2","chr3","enc1","enc2","enc3","enc4","_decode","isBuffer","logLevels","DISABLE","ERROR","WARN","INFO","logLevel","_log","info","_truncateValue","validateInput","expectedType","validateProperties","propsType","keyType","validatePropertyValue","invalidValueTypes","valueType","arrayCopy","elemType","validateGroupName","groupName","groupNameType","utils","logLevelName","WorkerGlobalScope","results","truncate","groupsType","transport","sendBeacon","defaultHostname","cookie","expires","expirationDays","secure","sameSite","getLastEventTime","parsedValue","strValue","baseCookie","_step","cookieArray","trimStart","_iterator","allowArrayLike","normalCompletion","didErr","_createForOfIteratorHelper","cookies","t1","cookieName","_areCookiesEnabled","base64Id","topDomain","levels","cname","_domainSpecific","nameEq","Cookie","setRaw","getRaw","WorkerStorage","windowLocalStorageAvailable","globalStorage","attrKey","addBehavior","save","attr","XMLDocument","_storageOptionExists","localStorage$1","cookieStorage","storage","getStorage","disableCookies","keyPrefix","storageOptionExists","MetadataStorage","storageKey","cookieDomain","writableTopDomain","disableCookieStorage","lastEventTime","eventId","identifyId","sequenceNumber","sessionStorage","saveCookie","getCookieStorageKey","cookieKey","allCookies","latestCookie","AMP_OP_CLEAR_ALL","userPropertiesOperations","_addOperation","clearAll","setOnce","unset","preInsert","postInsert","Request","XDomainRequest","xdr","ontimeout","onprogress","xhr","onreadystatechange","readyState","header","setHeaders","responseStatus","Revenue","_price","_productId","_quantity","_revenueType","_properties","setProductId","setQuantity","setPrice","setRevenueType","revenueType","setEventProperties","eventProperties","_isValidRevenue","_toJSONObject","AmplitudeServerZone","getEventLogApi","serverZone","eventLogUrl","DEFAULT_OPTIONS","apiEndpoint","batchEvents","cookieExpiration","sameSiteCookie","cookieForceUpgrade","deferInitialization","deviceIdFromUrlParam","eventUploadPeriodMillis","eventUploadThreshold","forceHttps","includeFbclid","includeGclid","includeReferrer","includeUtm","ingestionMetadata","sourceName","sourceVersion","userLanguage","logAttributionCapturedEvent","onExitPage","onNewSessionStart","branch","versionId","savedMaxCount","saveEvents","saveParamsReferrerOncePerSession","secureCookie","sessionTimeout","trackingOptions","carrier","device_manufacturer","device_model","dma","ip_address","os_name","os_version","version_name","unsetParamsReferrerOnNewSession","unsentKey","unsentIdentifyKey","uploadBatchSize","useDynamicConfig","serverZoneBasedApi","partnerId","ConfigManager","ingestionEndpoint","dynamicConfigUrl","getDynamicConfigApi","instance$1","AmplitudeClient","_instanceName","_unsentEvents","_unsentIdentifys","_q","_sending","_updateScheduled","_onInitCallbacks","_onNewSessionStartCallbacks","_eventId","_identifyId","_lastEventTime","_newSession","_sequenceNumber","_sessionId","_isInitialized","_connector","_userAgent","apiKey","opt_userId","opt_config","opt_callback","_parseConfig","Prototype","augmentedWindow","augmentedArray","prototypeJsFix","_refreshDynamicConfig","_storageSuffix","_storageSuffixV5","_oldCookiename","_unsentKey","_unsentIdentifyKey","_cookieName","_metadataStorage","hasOldCookie","hasNewCookie","_useOldCookie","hasCookie","_deferInitialization","_generateApiPropertiesTrackingConfig","_apiPropertiesTrackingOptions","tracking_options","_upgradeCookieData","_loadCookieData","_pendingReadStorage","_loadSavedUnsentEvents","storedDeviceId","_getInitialDeviceId","startNewSession","_unsetUTMParams","_trackParamsAndReferrer","_validateUnsentEventQueue","_saveCookieData","_sendEventsIfReady","_runNewSessionStartCallbacks","initFromStorage","runQueuedFunctions","pageHandlersAdded","prevTransport","setTransport","handleVisibilityChange","_logEvent","eventType","editor","deleteLowerLevelDomainCookies","cookieHost","hostParts","cookieHostParts","deleteDomain","configDeviceId","_getDeviceIdFromUrlParam","_getUrlParams","user_properties","event_properties","utmProperties","referrerProperties","gclidProperties","fbclidProperties","_initUtmData","_saveReferrer","_getReferrer","_saveGclid","_saveFbclid","attributionProperties","freeFormObjectKeys","zeroAllowedKeys","parseValidateAndLoad","inputValue","_apiKeySet","savedUnsentEventsString","_getFromStorage","unsentEvents","_parseSavedUnsentEventsString","_setInStorage","isNewSession","onInit","getSessionId","nextEventId","nextIdentifyId","nextSequenceNumber","_unsentCount","sendEvents","clearStorage","scope","cookieData","_loadCookieDataProps","queryParams","cookieParams","rawCookie","fetchParam","queryName","utmSource","utmMedium","utmCampaign","utmTerm","utmContent","utmData","addIfNotNull","getUtmData","_sendParamsReferrerUserProperties","urlRefer","_getReferrerFromUrlParam","urlParams","gclid","fbclid","_getReferringDomain","referrerInfo","referring_domain","serializedUnsentEvents","serializedIdentifys","unsentIdentify","setDomain","_shouldDeferCall","setGroup","groupType","enable","setSessionId","resetSessionId","regenerateDeviceId","sanitized","clearUserProperties","_convertProxyObjectToRealObject","identify_obj","opt_error_callback","outOfSession","_logErrorsWithCallbacks","groupIdentify","group_type","group_name","setVersionName","apiProperties","groupProperties","errorCallback","osName","osVersion","deviceVendor","vendor","device_id","user_id","event_id","session_id","event_type","_shouldTrackField","api_properties","sequence_number","group_properties","user_agent","partner_id","_isObservePlanSet","_isIngestionMetadataSet","ingestion_metadata","source_name","source_version","_limitEventsQueued","logEventWithTimestamp","logEventWithGroups","_isNumber","details","logRevenueV2","revenue_obj","logRevenue","product","special","_logErrorsOnEvents","maxEventId","maxIdentifyId","queues","maxId","unsentEvent","removeEvents","_removeEvents","eventQueue","filteredEvents","numEvents","mergedEvents","_mergeEventsAndIdentifys","eventsToSend","uploadTime","client","upload_time","checksum","URLSearchParams","identifyIndex","noIdentifys","noEvents","setGlobalUserProperties","__VERSION__","setLibrary","_initializationDeferred","enableTracking","refresh","getDeviceId","getUserId","setMinTimeBetweenSessionsMillis","timeInMillis","setEventUploadThreshold","setUseDynamicConfig","setServerZone","setServerUrl","serverUrl","Amplitude","_instances","old","amplitude","newInstance","_iq","ApiKey","production","development","SpecialEventType","DefaultOptions","AdminRegistrationIntended","BackButtonClicked","BeaconArticleViewed","BeaconClicked","BeaconClosed","BeaconEmailSent","BeaconSearched","ContentNavClicked","EmbeddedBeaconClicked","ErrorEncountered","ExternalLinkClicked","EyeIconClicked","ForgotPasswordClicked","LinkExpiredClicked","LoginCompleted","LoginIntended","LoginLinkClicked","LoginNextClicked","LoginRegistrationIntended","MfaPasskeyCopied","MfaVerifyClicked","MfaRegistrationCompleted","MfaRegistrationFailed","PasswordCreated","PasswordSetIntended","PrivacyPolicyClicked","RegistrationCompleted","ResendEmailClicked","SendAccountNumberReminderCancelled","SendAccountNumberReminderClicked","SendAccountNumberReminderSent","TermsAndConditionsClicked","TooltipViewed","UserVerificationIntended","ampli","isInitializedAndEnabled","_options$disabled","_options$client","_options$client2","_options$client3","environment","_this$amplitude","_options$client$optio","_options$client4","_options$client5","runMiddleware","_this$amplitude2","_this$amplitude3","_identify","ampIdentify","_this$amplitude4","amplitudeIdentify","trackEvent","_this$amplitude5","_this$amplitude6","identifyEvent","adminRegistrationIntended","backButtonClicked","beaconArticleViewed","beaconClicked","beaconClosed","beaconEmailSent","beaconSearched","contentNavClicked","embeddedBeaconClicked","errorEncountered","externalLinkClicked","eyeIconClicked","forgotPasswordClicked","linkExpiredClicked","loginCompleted","loginIntended","loginLinkClicked","loginNextClicked","loginRegistrationIntended","mfaPasskeyCopied","mfaVerifyClicked","mfaRegistrationCompleted","mfaRegistrationFailed","passwordCreated","passwordSetIntended","privacyPolicyClicked","registrationCompleted","resendEmailClicked","sendAccountNumberReminderCancelled","sendAccountNumberReminderClicked","sendAccountNumberReminderSent","termsAndConditionsClicked","tooltipViewed","userVerificationIntended","addEventMiddleware","curMiddlewareIndex","middlewareCount","_next","curPayload","Http","_fetchMethod","excludeApiPrefix","API_HOST","REACT_APP_API_URL","relatedUrl","fullUrl","fetchBody","responseData","_handleAPIResponse","retryCount","RETRY_LIMIT","errorDetails","_handleItlyError","errorStatus","error_code","error_message","error_status","apiErrorSlice","setError","clearErrors","applicationSlice","backButtonTarget","conNumber","isTwoFactorEnabled","isAmpliLoaded","isEmailNotSent","isResetPassword","redirectUrl","setAmpliLoaded","setBackButtonTarget","setCON","setContent","setEmailAddress","setPasswordForTwoFactor","setTwoFactorEnabled","setEmailNotSent","setPermanentlyLocked","setResetPassword","setTemporaryLocked","setToken","setRedirectUrl","loadersSlice","isConRegisterButtonLoader","isConReminderButtonLoader","isCreatePasswordButtonLoader","isEnableTwoFactorLoader","isLoader","isLoginButtonLoader","isTwoFactorLoginButtonLoader","isLoginOrRegisterButtonLoader","isResendButtonLoader","isTwoFactorRegisterButtonLoader","setCONRegisterButtonLoader","setCONReminderButtonLoader","setCreatePasswordButtonLoader","setEnableTwoFactorLoader","setLoader","setLoginButtonLoader","setTwoFactorLoginButtonLoader","setLoginOrRegisterButtonLoader","setResendButtonLoader","setTwoFactorRegisterButtonLoader","callIdentify","checkEmail","queryParamsBuilder","isPermanent","getQRCode","isSignedIn","remindCON","_ref7","sendNewEmail","returnUrl","endPointUrl","setPassword","signIn","signInTwoFactor","verificationCode","enableTwoFactor","signUp","primaryCode","isNoEmail","validateToken","rootReducer","curriedGetDefaultMiddleware","devTools","enhancers","finalMiddleware","middlewareEnhancer","finalCompose","compose2","trace","defaultEnhancers","storeEnhancers","configureStore","account","apiErrors","ApiErrorReducer","ApplicationReducer","loaders","LoaderReducer","getProcessEnv","resolveArguments","eventName","resolvePageArguments","resolvedCategory","resolvedName","strings","resolvedCallback","objects","resolvedProperties","resolvedOptions","resolveUserArguments","user","orderStack","args_1","resolveAliasArguments","aliasTo","aliasFrom","getDelay","startTimeInEpochMS","timeoutInMS","isEmpty","dispatchSingle","dispatched","debug","createBufferedPageContext","canonicalUrl","__t","BUFFERED_PAGE_CONTEXT_KEYS","createPageContext","newPath","parseCanonicalPath","newUrl","searchParams","createCanonicalURL","hashIdx","getDefaultBufferedPageContext","addPageContext","pageCtx","pageContextFromEventProps","evtCtx","ValidationError","stringError","objError","nilError","validateEvent","assertEventExists","assertEventType","assertMessageId","assertTrackEventName","assertTrackEventProperties","assertTraits","InternalEventFactorySettings","createMessageId","onEventMethodCall","onFinishedEvent","CoreEventFactory","globalIntegrations","baseEvent","screen","eventOverrideKeys","providedOptionsKeys","eventOverrides","integrationBooleans","integrationNames","allIntegrations","EventFactory","maybeUpdateAnonId","addIdentity","ev","isDestinationPluginWithAddMiddleware","CoreEventQueue","priorityQueue","criticalTasks","taskCompletionPromise","resolvePromise","run","createTaskGroup","failedInitializations","flushing","scheduleFlush","register","handleLoadError","deregister","unload","e_1","willDeliver","subscribeToDelivery","onDeliver","flushed","delivered","deliver","enqueuRetry","flushOne","err_2","err_3","isReady","availableExtensions","denyList","available","alternativeNameMatch","alternativeNames","All","grouper","suggestedKey","groupBy","enrichment","destinations","before_1","beforeWare","enrichment_1","enrichmentWare","afterCalls","EventQueue","nameOrQueue","bindAll","StoreType","LocalStorage","Memory","_logStoreKeyError","UniversalStorage","getAndSync","coercedValue","MemoryStorage","isArrayOfStoreType","api","converter","defaultAttributes","stringifiedAttributes","jar","foundKey","read","withAttributes","withConverter","tld","parsedUrl","lvls","CookieStorage","maxage","localStorageWarning","initializeStorages","storages","isStoreTypeWithSettings","applyCookieOptions","storeTypes","cookieOptions","oldKey","User","disable","prevId","idKey","retId","retLeg","legacyUserStore","anonKey","legacySIO","traitsStore","traitsKey","createStorage","legacyUser","autoBind","currentId","logout","cookieOpts","filterStores","localStorageFallbackDisabled","groupDefaults","flushSyncAnalyticsCalls","getCalls","callAnalyticsMethod","flushAddSourceMiddleware","flushOn","flushSetAnonymousID","flushAnalyticsCallsInNewTask","popPageContext","hasBufferedPageContextAsLastArg","bufferedPageCtx","isBufferedPageContext","PreInitMethodCall","called","PreInitMethodCallBuffer","calls","_callMap","_pushSnippetWindowBuffer","AnalyticsBuffered","trackSubmit","_createMethod","trackClick","trackLink","pageView","ready","_createChainableMethod","addSourceMiddleware","setAnonymousId","addDestinationMiddleware","_preInitBuffer","_promise","ajs","deprecationWarning","_analytics","AnalyticsInstanceSettings","writeKey","edgeFunction","_stub","Analytics","_debug","initialized","_user","initialize","addIntegrationMiddleware","removeAllListeners","removeListener","hasListeners","addIntegration","disablePersistance","disableClientPersistence","retryQueue","createDefaultQueue","storageSetting","_universalStorage","_group","eventFactory","segmentEvent","_traits","groupTraits","autotrack","trackForm","registrations","xt","deregistrations","addMiddleware","useQueryString","legacyPluginFactory","noConflict","_settings","pageview","_plugins","nested","Integration","NullAnalytics","clientHints","hints","userAgentData","getHighEntropyValues","getCookieOptions","EnvironmentEnrichmentPlugin","_ctx","highEntropyValuesClientHints","enrich","searchParams_1","objectToQueryString","campaign","utmParam","utm","amp","ampId","queryIds","btid","urid","parts_1","ads","referrerId","DateTimeFormat","timeZone","envEnrichment","ActionDestination","loadPromise","transformedContext","error_1","loadP","error_2","loadPluginFactory","remotePlugin","obfuscate","defaultCdn","urlSplit","name_1","obfuscatedURL","libraryName","remoteLoader","userIntegrations","mergedIntegrations","routingMiddleware","pluginSources","allPlugins","routingRules","middlewareSettings","pluginPromises","remotePlugins","creationNameEnabled","creationName","currentNameEnabled","isPluginDisabled","pluginName","pluginFactory","pluginLike","validate","routing_1","destinationName","wrapper","error_4","onPageChange","unloaded","visibilityState","MAX_PAYLOAD_SIZE","MAX_KEEPALIVE_SIZE","kilobytes","apiHost","schedule","pageUnloaded","sendBatch","updatedBatch","sentAt","keepalive","batch_1","reqs","chunks","_url","bufferOverflow","approachingTrackingAPILimit","passedKeepaliveLimit","failed","_metadata","bundled","unbundled","bundlingStatus","unbundledIntegrations","settingsUnbundled","configIds","maybeBundledConfigIds","bundledConfigIds","addBundledMetadata","bundledIds","flushQueue","failedQueue","isFlushing","newBuffer","segmentio","inflightEvents","remote","deliveryStrategy","strategy","onAlias","inspectorHost","loadCDNSettings","cdnURL","baseUrl","errorResponseMessage","flushFinalBuffer","registerPlugins","pluginLikes","legacyIntegrationSources","NODE_ENV","hasTsubMiddleware","tsubMiddleware","ajsDestinations","legacyDestinations","legacyVideoPluginsEnabled","loadLegacyVideoPlugins","schemaFilter","mergedSettings","toRegister","enabledMiddleware","remoteMiddlewares","mdw","loadAnalytics","preInitBuffer","globalAnalyticsKey","initialPageview","_m","updateCDNSettings","attach","attachInspector","classicIntegrations","segmentLoadOptions","flushPreBuffer","term","AnalyticsBrowser","loadStart","resolveLoadStart","_resolveLoadStart","standalone","capitalizeFirstLetter","focusLastInputFieldCharacter","inputField","createTextRange","FieldRange","moveStart","collapse","elemLen","getStatusForAmpli","validateEmail","identifyUserInTrackingSystem","contact","conNbr","contactTypes","userEmailAddress","userData","user_type","ServerError","createRootElem","rootContainer","addRootElem","rootElem","lastElementChild","rootElemRef","existingParent","parentElem","usePortal","FooterText","isEnabled","linkClicked","isPrivacy","onPointerDown","callNow","Main","AccountLockedModal","ServerErrorModal","bCorpBlackLogo","alt","bCorpWhiteLogo","logo","showFooterText","CheckEmailMessagePage","setStatus","isHideBackButton","reduxDispatch","handleBackButton","di_email_entered","handleResendButton","renderButtonsBlock","MainLayout","_Fragment","CONReminder","fromError","firstLetterCapitalised","emailAddress","setEmail","setShowModal","showDone","setShowDone","showValidationError","setShowValidationError","showSystemError","setShowSystemError","statusCode","setStatusCode","CON_REMINDER_MODAL_LINK_TEXT","handleEmailFieldChange","handleEmailFieldKeyPress","handleSendReminderClicked","isEmailValid","di_email_criteria_met","handleCancelButtonClicked","handleClickToLoginLink","showButtons","renderEnterEmailField","errorMsg","showError","autocompletetype","onKeyPress","ConfirmCONPage","storedCON","setCONNumber","setShowError","handleRegisterButton","conNumberWithPrefix","di_con_entered","di_status","ContinueToAccountOrLogout","encType","handleContinueToAccountButton","FullPageMessage","fullPageMessageClasses","smaller","Loading","PasswordField","passwordFieldClasses","LoginOrRegisterPage","handleNextButton","confirmationLinkExpired","registered","twoFactorEnabled","is_user_registered","mfa_status","renderAdminAccountRequestLink","LoginPage","handleLoginButton","isRedirect","handleForgotPasswordButton","handleClickToResetLink","TwoFactorLoginPage","setVerificationCode","tooltip_type","handleOpenBeaconAskSection","Beacon","external_link_clicked","TokenExpiredPage","LoginOrRegisterPages","PAGES","checkMail","continueToAccountOrLogoutPage","ContinueToAccountOrLogoutPage","confirmAccount","login","twoFactorLogin","loginOrRegister","tokenExpired","signedIn","LoadingPage","LoggingOutPage","isTwoFactorRegisterPage","iframeRef","iframeUri","logoutId","redirectUri","logoutUri","isValidURL","performLogoutAndRedirect","redirect","iframe","handleLoad","visibility","SvgClipboard","PasswordChecks","PasswordCheckRow","passed","passwordCheckClasses","Check","Close","CreatePasswordPage","setErrorMsg","submitted","setSubmitted","confirmedPassword","isBtnDisabled","handlePasswordKeyPress","handleSubmitButton","AMPLI_LOCATION","di_passwords_match","onPasswordsChanged","RegistrationPages","useParams","createPassword","qrcodegen","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__objRest","qrcodegen2","_QrCode","errorCorrectionLevel","dataCodewords","msk","modules","MIN_VERSION","MAX_VERSION","row","drawFunctionPatterns","allCodewords","addEccAndInterleave","drawCodewords","minPenalty","applyMask","drawFormatBits","penalty","getPenaltyScore","assert","mask","encodeText","ecl","segs","QrSegment","makeSegments","encodeSegments","encodeBinary","seg","makeBytes","dataUsedBits","minVersion","maxVersion","boostEcl","dataCapacityBits2","getNumDataCodewords","usedBits","getTotalBits","newEcl","Ecc","MEDIUM","QUARTILE","HIGH","appendBits","modeBits","numChars","numCharCountBits","getData","dataCapacityBits","padByte","getModule","getModules","setFunctionModule","drawFinderPattern","alignPatPos","getAlignmentPatternPositions","numAlign","drawAlignmentPattern","drawVersion","formatBits","rem","bits","getBit","dy","dx","dist","xx","isDark","ver","numBlocks","NUM_ERROR_CORRECTION_BLOCKS","blockEccLen","ECC_CODEWORDS_PER_BLOCK","rawCodewords","getNumRawDataModules","numShortBlocks","shortBlockLen","blocks","rsDiv","reedSolomonComputeDivisor","dat","ecc","reedSolomonComputeRemainder","vert","invert","runColor","runX","runHistory","PENALTY_N1","finderPenaltyAddHistory","finderPenaltyCountPatterns","PENALTY_N3","finderPenaltyTerminateAndCount","runY","PENALTY_N2","dark","sum","PENALTY_N4","reedSolomonMultiply","coef","core","currentRunColor","currentRunLength","QrCode","cond","_QrSegment","bitData","Mode","BYTE","makeNumeric","isNumeric","NUMERIC","makeAlphanumeric","isAlphanumeric","ALPHANUMERIC_CHARSET","ALPHANUMERIC","toUtf8ByteArray","makeEci","assignVal","ECI","NUMERIC_REGEX","ALPHANUMERIC_REGEX","ccbits","QrCode2","_Ecc","LOW","QrSegment2","_Mode","numBitsCharCount","KANJI","qrcodegen_default","ERROR_LEVEL_MAP","DEFAULT_SIZE","DEFAULT_LEVEL","DEFAULT_BGCOLOR","DEFAULT_FGCOLOR","DEFAULT_INCLUDEMARGIN","MARGIN_SIZE","DEFAULT_IMG_SCALE","generatePath","cell","excavateModules","excavation","getImageSettings","cells","includeMargin","imageSettings","numCells","scale","excavate","floorX","floorY","Path2D","addPath","QRCodeSVG","bgColor","fgColor","otherProps","calculatedImageSettings","image","preserveAspectRatio","fgPath","shapeRendering","FullPageWithHeader","TwoFactorRegisterPage","authAppUri","setAuthAppUri","setConNbr","setLogout","passKey","setPassKey","setRole","handleAuthAppLink","MICROSOFT_AUTHENTICATOR","GOOGLE_AUTHENTICATOR","APPLE_AUTHENTICATOR","handleVerifyButton","latency","remainingTime","applyDelay","meResult","codeResult","authenticatorKey","Helmet","justifyContent","navigation_type","ArrowLeft","QRCode","handleCopyToClipboard","clipboard","writeText","Clipboard","readOnly","TwoFactorRegisterPages","_excluded","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","_createSuper","Derived","hasNativeReflectConstruct","sham","Super","NewTarget","_possibleConstructorReturn","NEWTAB","OutboundLink","_Component","_inherits","eventLabel","trackerNames","eventMeta","sameTarget","normalClick","_this$props2","redacted","smallWords","redactingEmail","_str","mightBeEmail","redactEmail","gaCalls","ga","resetCalls","_isNotBrowser","_titleCase","_testMode","_alwaysSendToDefaultTracker","_redactEmail","internalGa","_window","TestModeAPI","_format","_gaCommand","command","_initialize","gaTrackingID","titleCase","useExistingGa","gaOptions","addTrackers","configsOrTrackingId","trackingId","testMode","standardImplementation","gaAddress","loadGA","alwaysSendToDefaultTracker","_len2","_key2","fieldsObject","fieldObject","rawPath","extraFields","hitType","extraLog","modalview","rawModalName","modalName","timing","timingCategory","timingVar","timingValue","timingLabel","nonInteraction","eventCategory","eventAction","eventValue","exception","fatal","exDescription","exFatal","rawName","trackerName","requireString","execute","actionType","outboundLink","hitCallback","safetyCallbackCalled","testModeAPI","UnboundOutboundLink","origTrackLink","Defaults","initProductTools","source_website","article_id","search_content","ReactGA","Appcues","initAppcues","App","setPage","appPage","DefaultPage","AccountLockedPage","PermanentLockBoundary","fallBack","BrowserRouter","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","forwardedRef","innerRef","navigate","_onClick","ex","isModifiedEvent","_ref2$component","__RouterContext","isDuplicateNavigation","forwardRefShim$1","forwardRef$1","ariaCurrent","_ref$ariaCurrent","activeClassName","_ref$activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","currentSubdomain","metaTag","HelmetProvider"],"sourceRoot":""}